- - PR -
C#のDataBaseの操作について
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-11-23 18:51
msoです。
分からないことがあるので何かアドバイスをいただきたいです。
上記のプログラムを実行したときに
の部分(cmd.ExecuteNonQuery();)でエラーが発生します。 エラーの内容は 'System.Data.OleDb.OleDbException' のハンドルされていない例外が system.data.dll で発生しました。 というものです。 本を参考に作っているのですが、何がおかしいのかよくわからない 状態です。 おかしいところがあるとおもうのですがアドバイスをいただけないでしょうか? | ||||||||
|
投稿日時: 2004-11-23 19:12
処理の流れはどうなっていますか?処理の流れを追って、インスタンスが生成されているか、確認しましょう。ってことだと思うのですが。
また、エラーの内容も、もう少し詳しいメッセージがあると思うのですが? _________________ | ||||||||
|
投稿日時: 2004-11-23 19:29
ご指摘ありがとうございます。 Try〜Catchでエラーをとったところ オブジェクト名 'OrderDetails' は無効です。 というエラーを取得することが出来ました。 Osqlで接続をして、 DELETE FROM OrderDetails WHERE OrderID = 10503 を実行したときはそのまま動作したのですが何か おかしいみたいです。 もうちょっと考えてみたいと思います。 何かあればまたアドバイスをお願いします | ||||||||
|
投稿日時: 2004-11-23 19:54
つながらないということは
initial catalog=hogeDB; が間違っているんじゃありませんか? | ||||||||
|
投稿日時: 2004-11-23 21:19
msoです。
hogeDBというデータベースは存在するのは確認できました。 個人的には権限のもんだいかと思い、 grant all to user というような形で権限を与えてみたのですが、 ダメでした。 | ||||||||
|
投稿日時: 2004-11-23 22:02
SQL Serverで、大文字小文字の判別はしないと思うのですが、どうでしょうか?えっと、引用符で囲った場合はする、囲わない場合はしない、ということで。で、エラー文中に小文字??私のメインはOracleなのですが、Oracleでは引用符で囲っているのでエラー、と言えるのですが、SQL Serverの場合はどうなんでしょう? あとは、繋がっているユーザが違うとか(テーブルが見えていない)、繋がっているデータベースが違うとか??? _________________ | ||||||||
|
投稿日時: 2004-11-23 22:04
msoです。
その後もいろいろとやっていたのですが、 1つ気が付いたことがあります。 OleDbConnectionを使って接続するしたときは正しく動作しなかったのですが、 SqlConnectionを使って接続をすると正しく動作をするようになりました。 OleDbConnectionで接続できなかった理由はOLEDB(ODBC)の設定を してなかったためでしょうか? | ||||||||
|
投稿日時: 2004-11-23 22:58
hogeDB ってもしかして Northwind サンプルデータベースのコピーじゃないですか?
だとしたら、OrderDetails ではなく Order Details のはず。とりあえず、テーブル名をかぎ括弧でくくって [Order Details] としてみたらどうですか? |