首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

DataSet跟DataAdapter的疑问

2011-12-20 
DataSet和DataAdapter的疑问以下程序是按书上的例题写的。做的是把数据库中northwind的Customers表更新其中

DataSet和DataAdapter的疑问
以下程序是按书上的例题写的。做的是把数据库中northwind的Customers表更新其中一个列。
  但我把Customers的内容复制到另一个表AMyCustomers,操作时总提示错误说“对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成。 ”

SqlDataAdapter thisAdapter = new SqlDataAdapter("select CustomerID,CompanyName from AMyCustomers", thisConnection);但我在这一句里把表名改回 Customers就可以执行,请问为什么呢?

C# code
//Specify SQL Server-specific connection string            SqlConnection thisConnection = new SqlConnection(@"server=.;Integrated Security=True;database=northwind");            //Create DataAdapter object for update and other operations            SqlDataAdapter thisAdapter = new SqlDataAdapter("select CustomerID,CompanyName from AMyCustomers", thisConnection);            //Create CommandBuilder object to build SQL commands            SqlCommandBuilder thisBuilder = new SqlCommandBuilder(thisAdapter);            //Create DataSet to contain related data tables,rows,and columns            DataSet thisDataSet = new DataSet();            //Fill DataSet using query defined previously for DataAdapter            thisAdapter.Fill(thisDataSet, "Customers");            //Show data before change            Console.WriteLine("name before change:{0}", thisDataSet.Tables["Customers"].Rows[9]["CompanyName"]);            //Change data in Customers table,row 9,CompanyName column            thisDataSet.Tables["Customers"].Rows[9]["CompanyName"] = "Acme,Inc.";            //Call update command to mark change in table            thisAdapter.Update(thisDataSet, "Customers");            Console.WriteLine("name after change:{0}", thisDataSet.Tables["Customers"].Rows[9]["CompanyName"]);            thisConnection.Close();


[解决办法]
引用楼主 yxlovemoney 的帖子:
    以下程序是按书上的例题写的。做的是把数据库中northwind的Customers表更新其中一个列。
    但我把Customers的内容复制到另一个表AMyCustomers,操作时总提示错误说“对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成。 ”

热点排行