シナリオ:
- Excelファイルを読み込んでデータグリッドに表示します。
- Excel の値が異なる場合は、SQL サーバーの値を更新する必要があります。
- SQL サーバーのテーブルに主キーがありません
これらすべての手順の後、テーブルを更新しようとすると、「更新には、変更された行を含む DataRow コレクションを渡すときに有効な UpdateCommand が必要です」というエラーがスローされます。
主キーはありません。したがって、更新コマンドを使用する必要があります。しかし、更新コマンドにはどのように、そして何が含まれるでしょうか? importdata は、Excel のデータが格納される辞書です。PLzヘルプ!!! 私は今どうすればいい?何も思いつきません....
foreach (DataColumn column in ds.Tables[0].Columns)
{
string fieldName = column.ColumnName;
string fieldNameValueE = string.Empty;
if (importdata.ContainsKey(fieldName))
{
fieldNameValueE = importdata[fieldName];
foreach (DataRow dr in ds.Tables[0].Rows)
{
string fieldNameValueD = dr[fieldName].ToString();
if (fieldNameValueD != fieldNameValueE)
{
dr[fieldName] = fieldNameValueE;
}
}
}
}
da.Update(ds);
connection.Close();