C#中datagridview连接数据库删除数据,第二次索引值超出范围如何解决?

问题描述

cmd.CommandText="deletefrom员工信息表whereID='"+this.dataGridView1.SelectedRows[0].Cells[0].Value.ToString()+"'";cmd.ExecuteNonQuery();

解决方案

解决方案二:
删除成功之后让datagridview1重新绑定下数据源
解决方案三:
楼上说的有道理privatevoidDelete_Click(objectsender,EventArgse){SqlConnectionconn=newSqlConnection("数据库连接串");conn.Open();SqlDataAdapterdaAuthors=newSqlDataAdapter("Select*Fromstudent",conn);DataSetdsPubs=newDataSet("Pubs");daAuthors.FillSchema(dsPubs,SchemaType.Source,"student");//FillSchema加载表的架构和数据,有了架构,表就知道哪个列是它的主键,同时Rows集合的Find方法也就可用了。daAuthors.Fill(dsPubs,"student");DataTabletblAuthors;tblAuthors=dsPubs.Tables["student"];if(MessageBox.Show("确实要删除该行吗?","询问",MessageBoxButtons.YesNo)==DialogResult.Yes){DataRowdrCurrent;stringRow_zhi=dataGridView1.SelectedRows[0].Cells[0].Value.ToString();//获取第一个单元格的值//MessageBox.Show(Row_zhi);drCurrent=tblAuthors.Rows.Find(Row_zhi);drCurrent.Delete();SqlCommandBuilderobjCommandBuilder=newSqlCommandBuilder(daAuthors);//SqlCommandBuilder提供自动生成单表命令的一种方式,这些命令用于协调使用关联的SQLServer数据库对DataSet执行的更改。daAuthors.Update(dsPubs,"student");//数据适配器.Update()方法//MessageBox.Show("数据库更新成功!");//-------重新绑定dataGridView的数据源,以便重新显示-------daAuthors.Fill(dsPubs,"student");DataTabletblAuthors1;tblAuthors1=dsPubs.Tables["student"];dataGridView1.DataSource=tblAuthors1;}conn.Close();conn.Dispose();//MessageBox.Show("数据库连接已关闭");}注:SqlDataAdapter不自动生成协调对DataSet执行的更改(使用关联的SQLServer实例)所需的Transact-SQL语句。但是,如果设置了SqlDataAdapter的SelectCommand属性,则可以创建一个SqlCommandBuilder对象来自动生成用于单表更新的Transact-SQL语句。然后,SqlCommandBuilder将生成其他任何未设置的Transact-SQL语句。一旦设置DataAdapter属性,SqlCommandBuilder就将其自身注册为RowUpdating事件的侦听器。一次只能将一个SqlDataAdapter与一个SqlCommandBuilder对象(或相反)互相关联。为了生成INSERT、UPDATE或DELETE语句,SqlCommandBuilder会自动使用SelectCommand属性来检索所需的元数据集。如果在检索元数据后(例如在第一次更新后)更改SelectCommand,则应调用RefreshSchema方法来更新元数据。SelectCommand还必须至少返回一个主键列或唯一的列。如果什么都没有返回,就会产生InvalidOperation异常,不生成命令。SqlCommandBuilder还使用由SelectCommand引用的Connection、CommandTimeout和Transaction属性。如果修改了任何这些属性或者替换了SelectCommand本身,用户则应调用RefreshSchema。否则,InsertCommand、UpdateCommand和DeleteCommand属性将保留它们以前的值。如果调用Dispose,则会解除SqlCommandBuilder与SqlDataAdapter的关联,并且不再使用所生成的命令。

时间: 2024-11-23 21:48:42

C#中datagridview连接数据库删除数据,第二次索引值超出范围如何解决?的相关文章

c#连接数据库删除数据

问题描述 c#连接数据库删除数据 贴上代码.问题是能执行,但是数据删除不了.数据库连接正常,能查询增加数据. try { con = new SqlConnection("server=.sqlexpress;integrated security=true;database=master;"); con.Open(); cmd = new SqlCommand("delete from [table_outside] where 展项名称 = '@disname'"

jsp中修改和删除数据(可用jQuery)

问题描述 jsp中修改和删除数据(可用jQuery) 现在我想实现的是,对某一行数据进行修改,我点该行数据后面的复选框,然后点 修改 的按钮,就跳转到另一个JSP页面,并显示我选中要修改的那一行的数据给我修改,修改后保存提交到数据库,具体要怎么做?代码以及JSP页面该怎么写?我是个新手...... 解决方案 有两个方案: 一.选择复选框,点击修改后,将主键ID带到后台,去数据库查询一下,在另外一个JSP显示,修改后保存到数据库中: 二.选择复先框,点击修改后,用jquery将选正的行元素获取,传

mysql中创建修改删除数据表例子

在PHP中应用数据库时,通常是先在MySQL客户机的控制台中,使用DDL语句创建网站中的数据库.数据表及修改表结构等操作以后,再在PHP脚本中应用.很少直接在PHP中执行DDL语句动态创建数据库.数据表或修改表的操作,通常也只有在制作安装版本的网站时才会这么做. 1.创建表(CREATE TABLE) 数据库创建以后,使用use命令选定这个新创建的数据库作为默认(当前)数据库使用,就可以继续建立其包含的数据表.数据表的创建是使用表的前提,创建数据表主要是定义数据表的结构,包括数据表的名称.字段名

Windows 7中如何快速删除指定注册表键值?

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   Windows7 RTM 7600出现噪音杂音解决方法 问题描述:电脑Lenovo家悦2240,1G内存,我装的是windows7 RTM7600,显卡 NVIDIA GeForce7100,声卡high definition audio device ,为什么经常出现噪音杂音啊,特别是听着歌,在浏览网页的时候特别明显,吱吱啦啦的,恳求各位高手指点! 解决办法:

C#中DataGridView不显示数据

问题描述 DataSetds=newDataSet();SqlDataAdapterda;privatevoidForm1_Load(objectsender,EventArgse){stringconnectionString="DataSource=MS-20160328HKVL\SQLEXPRESS;InitialCatalog=stuinfo;IntegratedSecurity=True";SqlConnectionconnection=newSqlConnection(co

请教下各位,asp程序向sql2000中添加完中文数据出现乱码。有什么好的解决方法?

问题描述 程序代码如下.<!--#includefile="../../Connections/conn.asp"--><html><head><title>领导信箱</title><scriptlanguage="javascript"src="js/jquery-1.3.js"></script><scriptlanguage="javascr

vb.net-DataGridView中显示不出数据

问题描述 DataGridView中显示不出数据 明明都已经绑定了数据源,且其他数据源都可以显示数据,为什么偏偏这个无法显示? 代码如下: Dim myadpt As SqlDataAdapter = New SqlDataAdapter("select 所有订购商品信息表.商品名称,SUM(所有订购商品信息表.订购数量) from 客户订购信息表,所有订购商品信息表 where 客户订购信息表.订单号=所有订购商品信息表.订单号 GROUP BY 所有订购商品信息表.商品名称", c

C#中dataGridview不能显示数据库中的内容

问题描述 C#中dataGridview不能显示数据库中的内容 我是从工具栏中拖进去的DataGridView,代码如下SqlDataAdapter sda = new SqlDataAdapter(""select * from Ado.dbo.stu"" con);DataSet ds = new DataSet();sda.Fill(dsstu"");infoGridview.DataSource = ds.Tables[0];但是运行之后

arcengine-在Arcengine+C#中如何利用dataGridView来删除、更新SHP中数据

问题描述 在Arcengine+C#中如何利用dataGridView来删除.更新SHP中数据 在Arcengine+C#中,实现查询的功能,并且查询结果显示在dataGridView中,如何将选中的dataGridView的数据删除.更新,同时删除.更新SHP中的数据