• ベストアンサー

エラーを発生させたい(SQLサーバーへの接続)

ネットのサンプルコードでSQLサーバーの接続テストをしましたが、 存在しないSQL文でもエラーになりません。(vb2005です) Sub sqlサーバーへ接続() ' 接続文字列を生成する Dim Cn As New System.Data.SqlClient.SqlConnection Dim SQL As System.Data.SqlClient.SqlCommand Dim stConnectionString As String = String.Empty stConnectionString &= "Data Source = ××××\SQLEXPRESS;" stConnectionString &= "Initial Catalog = ×××;" stConnectionString &= "Integrated Security = SSPI;" ' SqlConnection の新しいインスタンスを生成する (接続文字列を指定) Dim cSqlConnection As New System.Data.SqlClient.SqlConnection(stConnectionString) ' データベース接続を開く cSqlConnection.Open() SQL = Cn.CreateCommand SQL.CommandText = "SELECT テーブル1.あああフィールド1 FROM テーブル1" '間違ってても進んでしまう。 ' 接続に成功した旨を表示する MessageBox.Show("Microsoft SQL Server に接続されました") ' データベース接続を閉じる (正しくは オブジェクトの破棄を保証する を参照) cSqlConnection.Close() cSqlConnection.Dispose() End Sub 「あああフィールド1」なんて存在しないのに、先に進んでしまいます。 エラー処理の仕方を教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

そりゃ,コマンドを実行していませんから。 SqlCommand.Execute~系のメソッドを呼び出すか, SqlDataAdapter.Fillを使って,実際にコマンドを発行するまで, SELECT文はDBに通知されません。

noname#150498
質問者

お礼

そういう仕組みなのですね。 ご回答ありがとうございます。

その他の回答 (2)

回答No.3

SQL文がDBへExecuteしていないですね。 Reader付けて拾ったらえらーが返るはずです。 dim SQLReadItem As SqlClient.SqlDataReader cSqlConnection.Open() SQL = Cn.CreateCommand SQL.CommandText = "SELECT テーブル1.あああフィールド1 FROM テーブル1" Try   SQLReadItem = SQL.ExecuteReader   msg = "Try Completed" Catch   msg = Err.Description   SQLSelect = False End Try msgbox(msg) という感じでいかがですか?

noname#150498
質問者

お礼

ご回答ありがとうございます。 Executeが大切なのですね。

回答No.2

よく利用するサイトでADO接続があったので載せておきます。 ■SQLを実行する http://jeanne.wankuma.com/tips/vb.net/sqlserver/executenonquery.html ■SQLの実行結果を取得する http://jeanne.wankuma.com/tips/vb.net/sqlserver/executereader.html

関連するQ&A