日期:2014-05-19  浏览次数:20916 次

DataRow dr 实例化问题?
求救个问题:
  {   DataRow   dr   ;
                        int   vSNo   =   Int32.Parse(txtSNo.Text.Trim());
                        dr   =   dataSet11.Tables[ "Student "].Rows.Find(vSNo);
                              dr.Delete();
                                try
                                {
                                oleDbDataAdapter1.Update(dataSet11, "Student ");
                                }
                                catch(Exception   ex)
                                {MessageBox.Show(ex.Message);}
                        }

//在dr.Delete()处报错,(没有实例化)
提示异常:未将对象引用设置到对象的实例
请问程序那里有问题??

------解决方案--------------------
dr = dataSet11.Tables[ "Student "].Rows.Find(vSNo);返回的 dr 一定是空引用了!
你使用了:
DataRow dr=mydt.NewRow();
那么你将这个dr 添加到表中了没有?
dataSet11.Tables[ "Student "].Rows.Add(dr);
------解决方案--------------------
{ DataRow dr ;
int vSNo = Int32.Parse(txtSNo.Text.Trim());
dr = dataSet11.Tables[ "Student "].Rows.Find(vSNo);
if (dr == null) return;//没找到指定的行,返回
dr.Delete();
try
{
oleDbDataAdapter1.Update(dataSet11, "Student ");
}
catch(Exception ex)
{MessageBox.Show(ex.Message);}
}

------解决方案--------------------
Rows.Find查找符合条件的记录,没有找到的话,返回空引用
直接使用当然报错了,用前判断一下是否为空咯