binding的问题,急!

jlqidan 2002-10-10 03:31:50
...
textBox2.DataBindings.Add("Text",myDs,"Products.ProductName");
textBox3.DataBindings.Add("text",myDs,"Products.SupplierID");
...
已将form上的几个textbox控件绑定到dataset上,想要将输入到textbox上的内容作为新纪录保存进数据库表中,
但是关于binding的问题:
1。如何将textbox中的值作为一条新纪录更新进dataset中?
2。如何将dataset中的变化通过sqldataadapter更新到数据库中?
myDa1.Update(myDs,"Products");我用这条语句的错误信息是:

An unhandled exception of type 'System.InvalidOperationException' occurred in system.data.dll

Additional information: Update requires a valid InsertCommand when passed DataRow collection with new rows.
程序应该怎么写呢?
...全文
40 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunyou 2002-10-10
  • 打赏
  • 举报
回复

需要使用OleDbCommandBuilder (或SqlCommandBuilder)。如果DataGrid绑定到单一的数据表,这样就可以使用OleDbCommandBuilder (SqlCommandBuilder)来自动生成DataAdapter的DeleteCommand, InsertCommand和UpdateCommand等命令。但是,需要绑定到DataGrid的数据表设定Primary Key。
下面提供一个简单的示例程序,供您参考:
private OleDbCommandBuilder FriendsCmdBuilder; //用于自动生成SQL指令
private DataSet FriendsDataSet= new DataSet();
private OleDbDataAdapter FriendsAdapter;
……
// 通过GridBind,将数据表Friends绑定到DataGrid1
private void GridBind()
{
String ConnStr="Provider=SQLOLEDB;server=SHA-RICKIE-01;uid=user;pwd=user;database=test";
OleDbConnection myConnection= new OleDbConnection(ConnStr);
FriendsAdapter = new OleDbDataAdapter("select * from friends",myConnection);
/// 实例化OleDbCommandBuilder
FriendsCmdBuilder = new OleDbCommandBuilder(FriendsAdapter);
///fill the dataset
FriendsAdapter.Fill(FriendsDataSet, "Friends");
///set the dataset as a datasource for windows datagrid
dataGrid1.SetDataBinding(FriendsDataSet,"Friends");
}

private void btnSave_Click(object sender, System.EventArgs e)
{
try
{
///执行inserts,updates,deletes指令
/// Without the OleDbCommandBuilder, this line would fail.
FriendsAdapter.Update(FriendsDataSet,"Friends");
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}

110,547

社区成员

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

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

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