|
分類:[C# (Windows)]
はじめまして。hikaruです。初歩的な質問かもしれませんが、ここ数日間悩んでいます。
色々なサイト、書籍を見てみましたが、どうにもならず皆さんのお力をかしていただけるとありがたいです。
事象は、mdbファイルを更新したいのですが、なにも更新されないまま終了してしまいます。
コーディングで言いますとlog(ファイル名)の接続から//データROWのセット、までの確認は取れています。
//更新処理 以降がおかしい?のではないかと思いますが、、、。
皆さんのご意見を聞かせてください。
コーディング
string dt = DateTime.Now.ToString("yyyyMMdd");
System.Data.OleDb.OleDbConnection cn3;
System.Data.OleDb.OleDbDataAdapter da3;
System.Data.OleDb.OleDbCommand cmd3;
cn3 = new System.Data.OleDb.OleDbConnection();
cn3.ConnectionString = "Provider=" + pro + ";Data Source=" + Log ;
cn3.Open();
//ログの取得
da3 = new System.Data.OleDb.OleDbDataAdapter("SELECT * FROM Log", cn3);
//データセットへの読み込み
DataSet ds3 = new DataSet(Log);
da3.Fill(ds3, Log);
//データテーブルのセット
DataTable tb3 = ds3.Tables[Log];
tb3.PrimaryKey = new DataColumn[] { tb3.Columns["番号"] };
//データROWのセット(1件しかありません)
if (tb3.Rows.Count == 1)
{
DataRow dr3 = ds3.Tables[Log].NewRow();
object kousinbi = (object)tb3.Rows[0]["更新日"];
kousinbi2 = Convert.ToString(kousinbi);
object bangou = (object)tb3.Rows[0]["番号"];
bangou2 = Convert.ToInt16(bangou);
//日付が違っていたら更新
if (kousinbi2 == dt)
{
dr3["番号"] = bangou2 + 1;
dr3["更新日"] = dt;
}
else
{
dr3["番号"] = 1;
dr3["更新日"] = dt;
}
//更新処理
cmd3 = new System.Data.OleDb.OleDbCommand
("UPDATE " + Log + " SET 番号=?, 更新日 = ? ", cn3);
cmd3.Parameters.Add(new System.Data.OleDb.OleDbParameter("番号", System.Data.OleDb.OleDbType.BigInt, 4, "番号"));
cmd3.Parameters.Add(new System.Data.OleDb.OleDbParameter("更新日", System.Data.OleDb.OleDbType.VarChar, 8, "更新日"));
da3.UpdateCommand = cmd3;
da3.Update(ds3, Log);
}
else
{
//エラー処理
---
}
以上よろしくお願いします。
|