C# ADO.NET 更新到数据库失败
for (int i = 0; i < num; i++)
{
sf.Sda.Update(ds.Tables[i]);//sf:处理数据库的类,Sda即该类的DataAdapter
}
我利用这段代码更新,开始我把他放在了一个按钮的单击事件里,可以正常添加,并且保存到数据库里面,我后来把他放到了右键菜单的 “添加行”里面(本来那个按钮单击事件也是为了保存添加的数据的,所以想不用那个单击事件了,直接更新),
private void conMenuS_TNode_Click_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
switch (e.ClickedItem.Text)
{
case "添加行":
sf.addRow(ds,treeView_ds.SelectedNode.Text.ToString(),num,dataGridView1);
for (int i = 0; i < num; i++)//num 数据库中的表的数量
{
sf.Sda.Update(ds.Tables[i]);
}
break;
}
}
按理说我单击了添加行,调用addRow,我的addRow会调用另外一个窗口类去添加数据并更新到DataSet里面,通过上文提到的单击事件可以确定,ds确实是被添加了一行数据,addRow执行完就应该顺序执行更新数据了啊?请问,怎么没有数据库更新成功
------解决方案--------------------楼主,断点调试下,看下是不是case语句没执行
------解决方案--------------------这种问题断点看看数据有没有,一般都是
SqlCommandBuilder scb = new SqlCommandBuilder(sda);
sda.Update(ds);
this.dataGridView1.DataSource = ds.Tables[0];
你这里or (int i = 0; i < num; i++)//num 数据库中的表的数量
{
sf.Sda.Update(ds.Tables[i]);
}
直接更新ds就行了,不用循环