0

DataSet から DataGrid にデータを表示しました。これから列をSQLテーブルに挿入したいと思います。Dataset で必要な列に変数名を付けて、insert コマンドで呼び出すことはできますか?

ワークシートからの情報を保持する新しい DataSet を作成します。

DataSet objDataset1 = new DataSet();

// Fill the DataSet with the information from the worksheet.
objAdapter1.Fill(objDataset1, "XLData");

// Bind data to DataGrid control.
dgCodeDisp.ItemsSource = objDataset1.Tables[0].DefaultView;

sc.Open();

コマンドを挿入

cmd = new SqlCommand("Insert into Table (Code, v1, v2, ID) values('" +dgCodeDisp    + "','" + v1.IsChecked.ToString() + "','" + v2.IsChecked.ToString() + "', '" + txtId.Text + "')", sc);
cmd.ExecuteNonQuery();
4

1 に答える 1

1

SQL (SqlServer、MySQL など) に応じて、パラメーター化されたクエリを使用する必要があります。SQL Serverの場合、通常、コマンドを送信するときに解決のためのパラメーター参照として「@」を認識します...明確にするために、パラメーターに「@parm」という名前を付けたので、テーブルの実際の列について話しているわけではありません。と混乱を招きます。

cmd = new SqlCommand("Insert into Table (Code, v1, v2, ID) values( @parmCode, @parmV1, @parmV2, @parmID )", sc );

cmd.Parameters.Add( "@parmCode", dgCodeDisp );
cmd.Parameters.Add( "@parmV1", v1.IsChecked.ToString() );
cmd.Parameters.Add( "@parmV2", v2.IsChecked.ToString() );
cmd.Parameters.Add( "@parmID", txtId.Text );
cmd.ExecuteNonQuery();
于 2013-10-02T14:54:17.693 に答える