DOBON.NET DOBON.NETプログラミング掲示板過去ログ

動的 SQL 生成は、ベース テーブル情報を返さない SelectCommand ・・・の原因がわからない。

  • 題名: 動的 SQL 生成は、ベース テーブル情報を返さない SelectCommand ・・・の原因がわからない。
  • 著者: kiyo7447
  • 日時: 2006/11/12 12:04:02
  • ID: 18210
  • この記事の返信元:
    • (なし)
  • この記事への返信:
    • (なし)
  • ツリーを表示
環境/言語:[.NET Framework2.0/C#/Webアプリケーション]
分類:[ASP.NET]

こんにちは。アべです。

運用しているシステムで
System.InvalidOperationException
:動的 SQL 生成は、ベース テーブル情報を返さない SelectCommand に対してサポートされていません。
が発生し困っております。

当方では何が原因で発生しているかわからないので、
どのようなクエリでDataAdapterを作成すると
このエラーが発生するか知りたいです。

ご存知の方アドバイスをお願い致します。


▼運用ソースを元に作ったテストソース

private void button1_Click(object sender, EventArgs e)
{
string query = textBox1.Text;

SqlConnection con = new SqlConnection(textBox2.Text);
SqlDataAdapter adapter = new SqlDataAdapter(query, con);

SqlCommandBuilder builder = new SqlCommandBuilder(adapter);

SqlCommand insertCommand = builder.GetInsertCommand(); ←運用ではここでエラーが発生します。
SqlCommand updateCommand = builder.GetUpdateCommand();
SqlCommand deleteCommand = builder.GetDeleteCommand();

adapter.InsertCommand = insertCommand;
adapter.UpdateCommand = updateCommand;
adapter.DeleteCommand = deleteCommand;
}

▼当方は下記のことを試してみました。

1.コネクションの問題だと下記のエラー発生する。
System.InvalidOperationException:DataAdapter.SelectCommand.Connection プロパティは初期化する必要があります。
2.SQLのエラーだと下記の問題が発生する。
SqlException :XXXXXXXXXXXXXXX
3.更新可能なデータアダプタを作れない複数テーブルのSELECT文だと下記のエラー発生する。
System.InvalidOperationException 複数のベース テーブルに対する動的 SQL の生成はサポートされません。

つまり、当方ではこのエラーがどういったケースで発生するものなのかを理解しておりません。

▼コメント

・運用では月に1,2回このエラーが発生し、ステージング環境では発生しません。
・ロジック上は普通のSELECT文(select * from tableName where primaryKey = ??)を投げているはずです。
・同じエラーを発生することが出来れば、それがヒントとなり、道が見えると思っています。

以上

DOBON.NET | プログラミング道 | プログラミング掲示板