切换窗口dataset丢失数据
private void txtBarcode_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == 13)
{
if (addds(txtBarcode.Text)) {
txtBarcode.Text = "";
txtinvcode.Text = "";
txtinvname.Text = "";
txtnum.Text = "";
}
}
}
private Boolean addds(string sbarcode)
{
sqldr = datacon.getread("Select bm from t_bm_sp where barcode ='" + txtBarcode.Text + "'");
while (sqldr.Read ())
{
foreach (DataRow row in Publicvariables.DSSELECT.Tables[Publicvariables.selecttable+"MX"].Rows)//得到行集合
{
if (row["bm_sp"].ToString() == sqldr[0].ToString() )
{
//DataRow dr = Publicvariables.DSBARCODEMX.Tables[Publicvariables.selecttable ].NewRow();
DataRow dr = ds.Tables[Publicvariables.selecttable].NewRow();
dr["bm_ck"] = row["bm_ck"];
dr["barcode"] = txtBarcode.Text ;
dr["bm_sp"] = row["bm_sp"]; txtinvcode.Text = row["bm_sp"].ToString() ;
txtinvname.Text = dr["mc"].ToString() ;
dr["jldw_f"] = row["jldw_f"];
dr["ph"] = row["ph"];
dr["sl"] = "1"; txtnum.Text = "1";
dr["dj_f"] = row["dj_f"];
dr["je"] = row["dj_f"];
dr["rq_sc"] = row["rq_sc"];
dr["rq_sx"] = row["rq_sx"];
dr["bz"] = row["bz"];
dr["bh"] = 99999;
dr["bs"] = ds.Tables[0].Rows.Count + 1;
ds.Tables[Publicvariables.selecttable].Rows.Add(dr);
MessageBox.Show(ds.Tables[Publicvariables.selecttable].Rows.Count.ToString()); //这里执行完就会清空数据,注释掉这一条就不会,为什么?
return true;
}
}
不仅显示message会清空数据,切换到任何窗口都会清空数据,例如切换到windows桌面,返回来数据就没了。