简单很代码,现象很诡异...
代码很简单,只要点button1,能按输入t_1.Text的货号,在表里查找记录,并赋予t_2,t_3,t_4,t_5,t_6值。没有则不显示。
头一次点button1是正常的,如果有记录就返回以上的信息,如果没有就显示空白。但是如果第一次输入的货号有记录,再输入任何货号都是显示上一条信息,哪怕t1.Text=""也是这样,实在是很诡异。
也在t_1.Text的change事件中清空了所有文本框。如图:头一张是正常的,二张明显货号就是空的(就算乱输入也一样)。竟然显示和第一张一样。请各位高人帮忙分析下原因
- C# code
类文件: public class goods { int save_flag = 0;//取得是否有记录 string goods_name = "";//品名 string goods_place ="";//产地 string goods_type ="";//型号 string goods_unit = "";//单位 string goods_price = "";//价格 //数据库里是否有此商品,0没有、1有 public int save_flags { get { return save_flag; } set { save_flag = value; } } //商品名 public string g_name { get { return goods_name; } set { goods_name = value; } } //商品产地信息 public string g_place { get { return goods_place; } set { goods_place = value; } } //商品规格信息 public string g_type { get { return goods_type; } set { goods_type = value; } } //商品单位信息 public string g_unit { get { return goods_unit; } set { goods_unit = value; } } //商品价格信息 public string g_price { get { return goods_price; } set { goods_price = value; } } //搜索商品的信息 public string goods_find(string goods) { string goods_finds = "select * from p_goods where goods_nums = '" + goods + "'"; m_sql_conn m_conn = new m_sql_conn(); SqlConnection conn = new SqlConnection(m_conn.sql_conn()); SqlCommand cmd = new SqlCommand(goods_finds, conn); try { conn.Open(); } catch (System.Exception) { MessageBox.Show("数据库打开失败", "提示"); return "GF0000001错误"; } SqlDataReader goods_rs = cmd.ExecuteReader(); if(goods_rs.Read()) { goods_name = goods_rs["goods_name"].ToString(); goods_place = goods_rs["goods_place"].ToString(); goods_type = goods_rs["goods_type"].ToString(); goods_unit = goods_rs["goods_unit"].ToString(); goods_price = goods_rs["goods_price"].ToString(); save_flag = 1; } conn.Close(); goods_rs.Close(); return goods; }
调用类
- C# code
private void button1_Click(object sender, EventArgs e) { mygoods.goods_find(t_1.Text.Trim()); //按t_1.Text查找记录,按货号搜索 save_yn = mygoods.save_flags; //得到结果是否找到,有返回1,没有返回0 t_2.Text = mygoods.g_name.ToString(); t_3.Text = mygoods.g_place.ToString(); t_4.Text = mygoods.g_type.ToString(); t_5.Text = mygoods.g_unit.ToString(); t_6.Text = mygoods.g_price.ToString(); }private void t_1_TextChanged(object sender, EventArgs e) { //输入货号前清空所有文本框 t_2.Text = ""; t_3.Text = ""; t_4.Text = ""; t_5.Text = ""; t_6.Text = ""; t_7.Text = ""; }
[解决办法]
是不是你的内存中没有释放 或者 控件数据没有清空
[解决办法]
从代码看很明显
- C# code
private void button1_Click(object sender, EventArgs e) { mygoods.goods_find(t_1.Text.Trim()); //按t_1.Text查找记录,按货号搜索 save_yn = mygoods.save_flags; //得到结果是否找到,有返回1,没有返回0 t_2.Text = mygoods.g_name.ToString(); t_3.Text = mygoods.g_place.ToString(); t_4.Text = mygoods.g_type.ToString(); t_5.Text = mygoods.g_unit.ToString(); t_6.Text = mygoods.g_price.ToString(); }