ataSet1=new DataSet("DataSetMadCoder");
sqlDataAdapter1=new System.Data.SqlClient.SqlDataAdapter();
sqlDataAdapter1.SelectCommand=new System.Data.SqlClient.SqlCommand("select * from T_INFO",sqlConnection1);
sqlDataAdapter1.Fill(dataSet1,"tab1");
dataSet1.Tables["tab1"].Rows[0]["T_ID"]="SuperTeacher";
sqlDataAdapter1.Update(dataSet1,"tab1");为什么在执行到Update的时候会给出下列异常:
未处理的“System.InvalidOperationException”类型的异常出现在 system.data.dll 中。
其他信息: 当传递具有已修改行的 DataRow 集合时,更新要求有效的 UpdateCommand。然后我定义了一个UpdateCommand命令之后就好了,但是我觉得很奇怪,难到DataAdapter的功能如此单薄?非要我自己手动的写更新的代码才能更新DB?不能自动检测那些位子修改了,然后自己更新DB吗???那ADO.NET强大在那里?又方便在那里?谢谢高手解疑!
sqlDataAdapter1=new System.Data.SqlClient.SqlDataAdapter();
sqlDataAdapter1.SelectCommand=new System.Data.SqlClient.SqlCommand("select * from T_INFO",sqlConnection1);
sqlDataAdapter1.Fill(dataSet1,"tab1");
dataSet1.Tables["tab1"].Rows[0]["T_ID"]="SuperTeacher";
sqlDataAdapter1.Update(dataSet1,"tab1");为什么在执行到Update的时候会给出下列异常:
未处理的“System.InvalidOperationException”类型的异常出现在 system.data.dll 中。
其他信息: 当传递具有已修改行的 DataRow 集合时,更新要求有效的 UpdateCommand。然后我定义了一个UpdateCommand命令之后就好了,但是我觉得很奇怪,难到DataAdapter的功能如此单薄?非要我自己手动的写更新的代码才能更新DB?不能自动检测那些位子修改了,然后自己更新DB吗???那ADO.NET强大在那里?又方便在那里?谢谢高手解疑!
SqlCommandBuilder custCB = new SqlCommandBuilder(custDA);
custCB.QuotePrefix = "[";
custCB.QuoteSuffix = "]";DataSet custDS = new DataSet();nwindConn.Open();
custDA.Fill(custDS, "Customers");// Code to modify data in the DataSet here.// Without the SqlCommandBuilder, this line would fail.
custDA.Update(custDS, "Customers");
nwindConn.Close();