求解ADO.NET中更新数据库的操作

weixinyaojinNUS 2010-11-24 10:17:48
这是我写得主函数:
static void Main(string[] args)
{
//创建连接,填写连接信息
SqlConnection updateConnection = new SqlConnection(
@"Data Source=.\SQLEXPRESS;"+//这里的分号很重要,要记得
@"AttachDbFilename='E:\大三上资料库\数据库系统(张天庆)\第六次课程\NORTHWND.MDF';"+//分号
@"Integrated Security=True;Connect Timeout=20;User Instance=True"
);

SqlDataAdapter updateAdapter = new SqlDataAdapter
("SELECT CustomerID,CompanyName from Customers", updateConnection);

SqlCommandBuilder updateBuilder = new SqlCommandBuilder(updateAdapter);

DataSet updateDataset = new DataSet();

updateAdapter.Fill(updateDataset, "Customers");

Console.WriteLine
("在修改之前,数据库中Customers表的第2行公司名字是:{0}", updateDataset.Tables["Customers"].Rows[1][1]);


updateDataset.Tables["Customer"].Rows[1][1] = "IBM Corporation";

updateAdapter.Update(updateDataset, "Customers");

Console.WriteLine("在修改名字之后,数据库中Customers表的第2行公司名字是:{0}",
updateDataset.Tables["Customer"].Rows[1][1]);



updateConnection.Close();

}
这是一个Win32控制台程序主函数,开始的时候能够对NORTHWND.MDF数据库进行更新数据操作,但是第一次操作之后再进行更新就会出现问题了,比如说第一次是更新的第2行的数据,然后第二次执行这段代码,那么它会更新数据库中该表的第三行数据,也就是上次更新后的下一行数据,请问这是什么原因呢,我是参考的《C#入门经典》第28章的内容,书中没有提到这个问题。这个问题怎么解决呢?求高人指导!小弟感激不尽啊!
...全文
179 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixinyaojinNUS 2010-12-09
  • 打赏
  • 举报
回复
呵呵,谢谢!
grasshopperwarbler 2010-11-24
  • 打赏
  • 举报
回复
希望这回答对你有帮助~
grasshopperwarbler 2010-11-24
  • 打赏
  • 举报
回复
帮你调试了一会,发现其实没什么问题,因为Customer表是按CompanyName的首字母排序的,你更新了以后,表的行的排序就改变了,IBM的开头是I,它自动就沉下去了,所以原先第三的就变成了第二(不知道我说的明不明白,不懂可以继续问我)

我把 SqlDataAdapter updateAdapter = new SqlDataAdapter
("SELECT CustomerID,CompanyName from Customers", updateConnection);

改成了 SqlDataAdapter updateAdapter = new SqlDataAdapter
("SELECT CustomerID,CompanyName from Customers order by CustomerID", updateConnection);

可以顺利运行~

111,129

社区成员

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

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

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