C# datagridview删除行后数据源更新 数据源是视图

lyy359477261 2013-03-19 10:04:43
string conStr = "Server= USERSWO-MI8QI4Q\\SQLEXPRESS;Initial Catalog=LibraryCRM;Integrated Security=SSPI";
SqlConnection conn = new SqlConnection(conStr);
int index = this.dataGridView2.CurrentCell.RowIndex;
string readerID = this.dataGridView2.Rows[index].Cells["readerIDDataGridViewTextBoxColumn"].Value.ToString();
string strSQL = "Delete From ReaderInfo Where readerID= '" + readerID + "'";
try
{
conn.Open();
SqlDataAdapter sda = new SqlDataAdapter(strSQL ,conn );
DataSet ds = new DataSet();
sda.Fill(ds, "ReaderInfo");
dataGridView2.DataSource = ds.Tables["ReaderInfo"];
MessageBox.Show("成功删除数据!");

}

数据源是一张视图 ReaderInfo,对dataGridView2进行操作,删除选中行,然后重新绑定数据源
但是每次执行了
dataGridView2.DataSource = ds.Tables["ReaderInfo"];
之后,dataGridView2.DataSource就变成了null
纠结很久了!
...全文
177 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
狼烟辉 2013-03-20
  • 打赏
  • 举报
回复

SqlDataAdapter sda = new SqlDataAdapter(strSQL ,conn );                         DataSet ds = new DataSet();                         
sda.Fill(ds, "ReaderInfo"); 
这个代码,strSQL中是删除语句,用来填充DS自然无效为NULL. System.NullReferenceException 查询一下数据库中是否有NULL的字段处理上出问题.
lyy359477261 2013-03-20
  • 打赏
  • 举报
回复
引用 6 楼 lyy359477261 的回复:
引用 1 楼 gxingmin 的回复:视图一般用来查询,不用来增删改操作,你删除最好还是根据主键直接去对应的表里删除数据 另外你delete语句,不用填充到dataset里,直接ExecuteNonQuery()就可以了 C# code?123456789101112131415161718192021string conStr = "Server= USE……
还是出现“System.NullReferenceException”类型的未经处理的异常出现 这是要搞死人啊!
lyy359477261 2013-03-20
  • 打赏
  • 举报
回复
引用 5 楼 wolf_y 的回复:
C# code?12SqlDataAdapter sda = new SqlDataAdapter(strSQL ,conn ); DataSet ds = new DataSet(); sda.Fill(ds, "ReaderInfo"); 这个代码,strSQL中是删除……
"SELECT * FROM ReaderInfo "肯定不可能还有空字段,要是有的话也就是说他跟原表有关了
lyy359477261 2013-03-20
  • 打赏
  • 举报
回复
引用 1 楼 gxingmin 的回复:
视图一般用来查询,不用来增删改操作,你删除最好还是根据主键直接去对应的表里删除数据 另外你delete语句,不用填充到dataset里,直接ExecuteNonQuery()就可以了 C# code?123456789101112131415161718192021string conStr = "Server= USERSWO-MI8QI4Q\\SQLEXP……
改成您说的这样后, dataGridView2.DataSource = ds.Tables["ReaderInfo"]; 这句执行后就出现“System.NullReferenceException”类型的未经处理的异常出现 我实在是不知道怎么改了,可能是因为视图的关系,所以才会这样 之后我吧数据源改为显示整个表中属性的,就通过了
lyy359477261 2013-03-19
  • 打赏
  • 举报
回复
我貌似发现我每次一用SqlCommand,就会出现“System.NullReferenceException”类型的未经处理的异常出现在 System.Windows.Forms.dll 中。
lyy359477261 2013-03-19
  • 打赏
  • 举报
回复
引用 1 楼 gxingmin 的回复:
视图一般用来查询,不用来增删改操作,你删除最好还是根据主键直接去对应的表里删除数据 另外你delete语句,不用填充到dataset里,直接ExecuteNonQuery()就可以了 C# code?123456789101112131415161718192021string conStr = "Server= USERSWO-MI8QI4Q\\SQLEXP……
我尝试了你改的代码,datasource的问题解决 但是会出现“System.NullReferenceException”类型的未经处理的异常出现在 System.Windows.Forms.dll 中。
lyy359477261 2013-03-19
  • 打赏
  • 举报
回复
但是我并不是要显示表中所有的属性的数据,我之前试过用表,然后在datagridview中隐藏一列,最后dataset填充,同样的datasource显示为null
gxingmin 2013-03-19
  • 打赏
  • 举报
回复
视图一般用来查询,不用来增删改操作,你删除最好还是根据主键直接去对应的表里删除数据 另外你delete语句,不用填充到dataset里,直接ExecuteNonQuery()就可以了
string conStr = "Server= USERSWO-MI8QI4Q\\SQLEXPRESS;Initial Catalog=LibraryCRM;Integrated Security=SSPI";
                    SqlConnection conn = new SqlConnection(conStr);
                    int index = this.dataGridView2.CurrentCell.RowIndex;
                    string readerID = this.dataGridView2.Rows[index].Cells["readerIDDataGridViewTextBoxColumn"].Value.ToString();
                    string strSQL = "Delete From ReaderInfo Where readerID= '" + readerID + "'";
                    try
                    {
                        conn.Open();
                        //此处加下面几句
                        SqlCommand cmd=conn.CreateCommand();
                        cmd.CommandText=strSQL;
                        cmd.ExecuteNonQuery(); //删除,不建议这样删除视图
                        conn.Close();   
                        strSQL="SELECT * FROM ReaderInfo "; //需要重新绑定
                        SqlDataAdapter sda = new SqlDataAdapter(strSQL ,conn );
                        DataSet ds = new DataSet();
                        sda.Fill(ds, "ReaderInfo");
                        dataGridView2.DataSource = ds.Tables["ReaderInfo"];
                        MessageBox.Show("成功删除数据!");
                        
                    }

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧