我写了下面这段代码可是存在问题
ds=new DataSet();
DialogResult result;
result=MessageBox.Show("是否确定删除","提示信息",MessageBoxButtons.YesNo);
if(result==DialogResult.Yes)
{
int x=this.dataGrid1.CurrentRowIndex;
string n=ds.Tables["s"].Rows[x]["szrq"].ToString(); [就是这里的SZRQ出错了]
SqlConnection con=db.condb();
con.Open();
SqlCommand cmd=new SqlCommand("delete from sc_15xj where szrq='"+n+"'",con);
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("删除成功");
ds.Clear();
this.o();
}
系统提示不正确 请帮忙解决下问题我已经标出
ds=new DataSet();
DialogResult result;
result=MessageBox.Show("是否确定删除","提示信息",MessageBoxButtons.YesNo);
if(result==DialogResult.Yes)
{
int x=this.dataGrid1.CurrentRowIndex;
string n=ds.Tables["s"].Rows[x]["szrq"].ToString(); [就是这里的SZRQ出错了]
SqlConnection con=db.condb();
con.Open();
SqlCommand cmd=new SqlCommand("delete from sc_15xj where szrq='"+n+"'",con);
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("删除成功");
ds.Clear();
this.o();
}
系统提示不正确 请帮忙解决下问题我已经标出
正解没错,ds 实例化了(new了)但是没有数据在里面,
string n=ds.Tables["s"].Rows[x]["szrq"].ToString(); [就是这里的SZRQ出错了]
当然要出错改为
ds = (DataSet) this.dataGrid1.DataSource; 试试看——前提是你的 dataGrid1.DataSource 本来绑定的就是你后面访问的正确的 DataSet其实你学好了数据绑定,有更容易的实现方式,何必舍近求远?
// ds=new DataSet(); ds 不需要实例化,定义即可
DialogResult result;
result=MessageBox.Show("是否确定删除","提示信息",MessageBoxButtons.YesNo);
if(result==DialogResult.Yes)
{
DataSet ds = this.dataGrid1.DataSource;
int x=this.dataGrid1.CurrentRowIndex;
string n=ds.Tables["s"].Rows[x]["szrq"].ToString(); [就是这里的SZRQ出错了]
// .... ....
// ds.Clear(); 如果 clear,dataGrid1 里面的数据也就 clear 了,因为 ds 实际上是对 dataGrid1.DataSource 的引用
}