C# 使用DataAdapter对象的update方法,更新DataSet中修改的数据,产生的报错。

代码:privatevoidForm1_Load(objectsender,EventArgse)//填充数据{conn=newSqlConnection("server... 代码: private void Form1_Load(object sender, EventArgs e)//填充数据 { conn = new SqlConnection("server=woo;database=db_15;uid=sa;pwd=1234"); SqlCommand cmd = new SqlCommand("select * from tb_command",conn); sda = new SqlDataAdapter(); sda.SelectCommand = cmd; ds = new DataSet(); sda.Fill(ds, "cs"); dataGridView1.DataSource = ds.Tables[0]; } private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { //将数据读入Textbox修改 textBox1.Text = dataGridView1.SelectedCells[0].Value.ToString(); textBox2.Text = dataGridView1.SelectedCells[1].Value.ToString(); textBox3.Text = dataGridView1.SelectedCells[2].Value.ToString(); textBox4.Text = dataGridView1.SelectedCells[3].Value.ToString(); textBox5.Text = dataGridView1.SelectedCells[4].Value.ToString(); } private void button1_Click(object sender, EventArgs e) //更新数据 { DataTable dt = ds.Tables["cs"]; sda.FillSchema(dt, SchemaType.Mapped); DataRow dr = dt.Rows.Find(label1.Text); dr["姓名"] = label2.Text.Trim(); dr["性别"] = label3.Text.Trim(); dr["年龄"] = label4.Text.Trim(); dr["奖金"] = label5.Text.Trim(); SqlCommandBuilder cmdbuilder = new SqlCommandBuilder(sda); sda.Update(dt); }
错误提示见图片,请高手指点,谢谢!
展开
 我来答
百度网友d1314bc
2013-06-24 · 超过16用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:30.5万
展开全部
字符串输入不对,看看是不是输入的问题,比如中英文输入法下,用了中文的逗号和括号
追问
都是对的,VS没有录入错误的提示!
cdinten
2013-06-24 · TA获得超过6589个赞
知道大有可为答主
回答量:3562
采纳率:56%
帮助的人:1337万
展开全部
报错的行修改为:
DataRow dr = dt.Rows.Find(Convert.ToInt32(label1.Text));
试试?
追问

谢谢帮助,按你给的代码,还是同样的显示!

注:以上代码是一个教程上的例子,写的一模一样(数据库用的也是案例带的数据库),我写的就是过不了!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哲事姓无
2013-06-24 · TA获得超过1176个赞
知道小有建树答主
回答量:903
采纳率:100%
帮助的人:444万
展开全部
没用过Find函数,但是既然是查找主键值,那么会不会是因为你的主键是int值但是传入的是string或是ds.Tables["cs"]中没有包括主键的原因造成的呢
更多追问追答
追问
谢谢回复,如果是这个原因要怎么修改?

注:以上代码是一个教程上的例子,写的一模一样(数据库用的也是案例带的数据库),我写的就是过不了!
追答
数据库中编号的那一列是否设置为主键了。还有dataset 如果使用vs工具设置的话,看看编号那一列是否是主键。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leiyangbdwk
2013-06-24 · TA获得超过3295个赞
知道大有可为答主
回答量:4975
采纳率:12%
帮助的人:4394万
展开全部
(label1.Text)对应哪个界面元素?值是主键吗?仅仅看你上面的图片的话,个人觉得应该是“编号”对应的那个textbox的值。
追问
label1.Text对应的是编号,在数据库中是主键!但没有在VS中设定主键。
追答
如果你对update不是很熟悉,你还是直接用sql语句好了,或者有sqlhelper之类的辅助一下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式