0

メインフォームがあります。リンクラベルがあります。それをクリックすると、新しいフォームが開き、データグリッドとボタンが表示されます。データグリッドには、新しいフォームの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

誰かが私が間違っていることを教えてもらえますか?

ありがとう!

4

1 に答える 1

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
于 2012-06-12T06:42:04.473 に答える