myTableAdapter adapter = new myTableAdapter();
  WindowsFormsApplication1.DataSet1.myDataTable table = adapter.GetData();
   table[0].name = "admin";
  adapter.Update(table);程序很简单 就是把源数据库中的第一行name改为admin 但是执行过后源数据库始终没有改变,表中主键我也设置了,我也排除了另外的一些错误,可以从源数据库中读数据,但是就是写不进去。是不是数据库设置的问题啊!

解决方案 »

  1.   

    adapter.Update(table)之前要写Adapter.InsertCommand 、 Adapter.UpdateCommand 和Adapter.DeleteCommand如果table对应的数据库表主键,且能保证table中的主键在程序操作中会更新,
    可以在实例化adapter之后,实例化一个SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
    然后操作如故
      

  2.   

    "adapter.Update(table)之前要写Adapter.InsertCommand 、 Adapter.UpdateCommand 和Adapter.DeleteCommand"
    我用的是类型化dataset!
      

  3.   

    dataset要通过adapter更新的,或者自己手动写更新语句,dataset本身没有更新数据库的功能
      

  4.   

    去看看具体的用法
    也可以用SQLHELPER 手动写的。比较原始
      

  5.   

    你强类型的DataSet怎样设置Update的??
      

  6.   

    DataSet只相当于一个本地的Cache,要更新数据源,最终还是要通过Command进行。无论这个Command是在DataAdapter里实现,还是单独的构造。
      

  7.   

    类型化的DataSet,与普通的DataSet相比,就是自动绑定了表、列以及相应的数据类型,从而不再需要我们显式地进行类型转换,并在编译时就提供类型安全检查。
      

  8.   


                string dataDir = AppDomain.CurrentDomain.BaseDirectory;
                if (dataDir.EndsWith(@"\bin\Debug\") || dataDir.EndsWith(@"\bin\Release\"))
                {
                    dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
                    AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);
                }在Program.cs文件中加入上述神奇代码,我也遇到过该问题,原因是在调试时会生存的新的编译后的数据库,而我们在新建查看的数据库为原来建立的数据库是不同的数据库。希望对你有底帮助!
      

  9.   

    http://hi.baidu.com/hjywyj/item/bdd9a53b8015c64d033edcb1