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

わんくま同盟

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

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


(過去ログ 153 を表示中)
■89191 / )  c#のデータベース削除について
□投稿者/ tetris (18回)-(2018/11/06(Tue) 13:56:47)

分類:[C#] 

どうしてもエラーが改善できないため、助けを願います。
No89139の質問をしたプログラムの続きです。

やりたいこととしてはaccdb形式のデータベースのテーブル データ一覧_T からフォーム上のListviewにデータを抽出していて
フォーム上のListviewからデータを消すと、データベースのデータも消える という仕組みを作りたいです。

ListViewからデータを抽出するところまではできています。

プログラムは次のようになっています。
      ListViewItem item = new ListViewItem();
item = listView1.SelectedItems[0];

      conn.Open();
command.CommandText = "DELETE From データ一覧_T WHERE 時刻=?";
command.Parameters.AddWithValue("@zikoku", item);
command.Connection = conn;
command.ExecuteNonQuery();
conn.Close();

最初にitemという変数にListview1上でクリックし選択したデータ(これが時刻)を代入し、itemに時刻情報を入れます(String型)
仮にこの時の時刻情報が「09時00分」という情報だったとします。
これを WHERE 時刻 =? とすることでパラメータクエリを使って次の行でitem変数を入れています。

こうすることによってデータベース上で時刻が 09時00分 の列が消えてくれれば・・・と思っています。
ところがエラーが出てしまい、正常に実行ができません。 エラーメッセージは以下の通りです。
デリートを実行するボタンを押したタイミングで

"複数ステップの OLE DB の操作でエラーが発生しました。 各OLE DB の状態の値を確認してください。作業は終了しませんでした"

と出ます。 ちなみに
command.CommandText = "DELETE From データ一覧_T WHERE 時刻='09時00分'";  と書き換え
command.Parameters.AddWithValue("@zikoku", item); この行をコメントアウトした結果、正常に09時00分のデータを削除することができました。

何か情報が足りないところがあったら申し訳ございません。ご協力お願い致します。
返信 編集キー/


管理者用

- Child Tree -