看了很多书和范例,对了dataset,adapter的使用还是有些困惑!!1、看书上的例子,是修改了dataset中的table的行后,直接就使用adapter.update()了,结果一运行就说需要相应的command,没办法,看帮助2、帮助上是
adapter.UpdateCommand = new OleDbCommand(
"UPDATE Customers SET CustomerID = ?, CompanyName = ? " +
"WHERE CustomerID = ?");
然后下面许多的adapter.UpdateCommand.Parameters.Add()
这也太麻烦了吧,如果我的表有50个字段,那保存时不是要写50行以上的代码,有点夸张。3、然后就是看了一些例子,也基本都是直接写好SQL语句然后来运行,并不是直接保存dataset的数据。我的想法是使用adapter.fill来填充好一个Dataset,然后绑定到datagridview,然后用户修改了表格数据后点击一个"保存"按钮就直接保存了,最好不要再写一遍SQL或是加一堆的parameters。
不知道大家一些用的是哪种保存数据的方法???
adapter.UpdateCommand = new OleDbCommand(
"UPDATE Customers SET CustomerID = ?, CompanyName = ? " +
"WHERE CustomerID = ?");
然后下面许多的adapter.UpdateCommand.Parameters.Add()
这也太麻烦了吧,如果我的表有50个字段,那保存时不是要写50行以上的代码,有点夸张。3、然后就是看了一些例子,也基本都是直接写好SQL语句然后来运行,并不是直接保存dataset的数据。我的想法是使用adapter.fill来填充好一个Dataset,然后绑定到datagridview,然后用户修改了表格数据后点击一个"保存"按钮就直接保存了,最好不要再写一遍SQL或是加一堆的parameters。
不知道大家一些用的是哪种保存数据的方法???
不用一个一个的些, 可以直接更新一个table
如果有条件或者只更新几个, 你可以直接在dataset里头写一个sql command,
就可以用adapter.你自己写的();
adapter.update(数据table),
adapter是怎样生成的??
"保存"按钮的方法代码里写:
SqlCommandBuilder SQLcmdBld = new SqlCommandBuilder(adapter);//自动重建了Command
adapter.Update(Dataset.Tables[0]);//数据保存到数据库
string queryString, string tableName)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand(queryString, connection);
SqlCommandBuilder builder = new SqlCommandBuilder(adapter); connection.Open(); DataSet dataSet = new DataSet();
adapter.Fill(dataSet, tableName); //code to modify data in DataSet here builder.GetUpdateCommand(); //Without the SqlCommandBuilder this line would fail
adapter.Update(dataSet, tableName); return dataSet;
}
}