C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: mdbの削除


(過去ログ 22 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■9636 / inTopicNo.1)  mdbの削除
  
□投稿者/ hikaru (31回)-(2007/11/01(Thu) 13:23:32)

分類:[C#] 

MDBでファイルのファイルの削除をしたいのですが、エラーが発生しました。
(VS2005でC#で開発しています)

同時実行違反 DeleteCommandによって、処理予定の1レコードのうち0件が処理されました。

ここしばらく、このことで悩んでいます。

申し訳ございませんが、ご教授ください。

コーディング内容は、以下のです。

dtFILE.PrimaryKey = new DataColumn[] { dtFILE.Columns["ID"], dtFILE.Columns["NO"] };

//テーブルの削除
for (int j = 0; j < dtFILE.Rows.Count; j = j + 1)
{
dsFILE.Tables[name3].Rows[j].Delete();
}
da3.Update(dsFILE, name3);


よろしくお願いします。
引用返信 編集キー/
■9637 / inTopicNo.2)  Re[1]: mdbの削除
□投稿者/ 魔界の仮面弁士 (510回)-(2007/11/01(Thu) 13:37:40)
2007/11/01(Thu) 13:49:23 編集(投稿者)

No9636 (hikaru さん) に返信
> 同時実行違反 DeleteCommandによって、処理予定の1レコードのうち0件が処理されました。

データが 1 件削除されるはずが 0件更新、すなわち削除されなかったという事でしょうね。
DeleteCommand の内容と、パラメータのマッピングなどをチェックしてみてください。
(そもそも、DeleteCommand が設定されていなかった…なんて事はありませんか?)


下記は更新時の例ですが、状況的には似たような物なので、参考にはなるかも。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=5253&KLOG=15
http://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200503/05030080.txt
引用返信 編集キー/
■9642 / inTopicNo.3)  Re[2]: mdbの削除
□投稿者/ hikaru (32回)-(2007/11/01(Thu) 15:37:26)
No9637 (魔界の仮面弁士 さん) に返信
早速の回答ありがとうございます。

まず、最初に伝えるべきでした。現象です。
この現象は、1件のときは、エラーもでず、DBの更新も正常で、
2件のときはエラーが出るけれど、DBの更新も正常です。
複数件数のとき、データベースは更新されていました、が、エラーがでます。

da.DeleteCommand は、設定しています。しかし、ひとつ、キーが"ID"、"NO"なのに、
WHERE ID=?"でいいのかな、、、でも、IDのを削除したいので。。

コーディングです。

delSql = "DELETE FROM コードファイル";
delSql = delSql + " WHERE ID=?";

//コマンド作成
cmd = new System.Data.OleDb.OleDbCommand(delSql, cn);
cmd.Parameters.Add(new System.Data.OleDb.OleDbParameter("ID", System.Data.OleDb.OleDbType.Char, 9, "ID"));
cmd.Parameters.Add(new System.Data.OleDb.OleDbParameter("NO", System.Data.OleDb.OleDbType.Char, 3, "NO"));
cmd.Parameters.Add(new System.Data.OleDb.OleDbParameter("名前", System.Data.OleDb.OleDbType.VarChar, 60, "名前"));
da.DeleteCommand = cmd;

聞いてばかりで申し訳ございませんが、よろしくお願いいたします。

> 2007/11/01(Thu) 13:49:23 編集(投稿者)
>
> ■No9636 (hikaru さん) に返信
>>同時実行違反 DeleteCommandによって、処理予定の1レコードのうち0件が処理されました。
>
> データが 1 件削除されるはずが 0件更新、すなわち削除されなかったという事でしょうね。
> DeleteCommand の内容と、パラメータのマッピングなどをチェックしてみてください。
> (そもそも、DeleteCommand が設定されていなかった…なんて事はありませんか?)
>
>
> 下記は更新時の例ですが、状況的には似たような物なので、参考にはなるかも。
> http://bbs.wankuma.com/index.cgi?mode=al2&namber=5253&KLOG=15
> http://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200503/05030080.txt


引用返信 編集キー/
■9644 / inTopicNo.4)  Re[3]: mdbの削除
□投稿者/ 魔界の仮面弁士 (511回)-(2007/11/01(Thu) 16:02:00)
No9642 (hikaru さん) に返信
> da.DeleteCommand は、設定しています。しかし、ひとつ、キーが"ID"、"NO"なのに、
データベースの主キーが IDと NOの組み合わせなら、WHERE ID=? AND NO=? です。
変更のあった行(DataRow)それぞれに対して処理されますので。

> WHERE ID=?"でいいのかな、、、でも、IDのを削除したいので。。
削除対象の ID が分かっているなら、DataAdapter.Update メソッドを使う必要は無いかと。
OleDbCommand.ExecuteNonQuery メソッドを使ってみては如何でしょう。

あるいは 2005 という事なので、TableAdapter に削除メソッドを追加しても良いかな。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -