我有一张主表格。有一个链接标签。如果我点击它,将打开一个新表单,并在其上有一个数据网格和一个按钮。 datagrid将填充新表单Load事件的数据。 我以这种方式绑定数据源:
void BindDataSource( BindingSource^ BS, SqlDataAdapter^ DA, DataGridView^ DG, String^ SQLCommand )
{
DG->DataSource = BS;
//InsertDataToDataGrid( "select * from myTable", dataGridView10 );
String^ connectionString = "database=myDataBase;server=myServer;UID=UserID;PWD=Password;";
// Create a new data adapter based on the specified query.
DA = gcnew SqlDataAdapter( SQLCommand, connectionString);
gcnew SqlCommandBuilder( DA );
DataTable^ table = gcnew DataTable();
DA->Fill( table );
BS->DataSource = table;
}//BindDataSource
如果我点击按钮,它应该保存更改。
我这样保存:
dAPcExceptions->Update( ( DataTable^ )bSPCExceptions->DataSource );
我在主窗体上使用此方法,它工作正常。
但是如果我点击按钮我会收到错误:
update requires a valid updatecommand when passed datarow collection with modified rows
有人能告诉我我做错了吗?
谢谢!
答案 0 :(得分:0)
我想你正在创建一个SqlDataAdapter并将其返回以备将来使用。因此,您必须使用轨道引用将SqlDataAdapter参数作为输入/输出。
void BindDataSource( BindingSource^ BS, SqlDataAdapter^% DA, DataGridView^ DG, String^ SQLCommand )
{
...
// Create a new data adapter based on the specified query.
DA = gcnew SqlDataAdapter( SQLCommand, connectionString);
...
}//BindDataSource