- - PR -
INSERTのVALUESの値に閉じていない括弧が存在する場合
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-02-10 20:20
VB.NETでデータベースはMSSQLで開発中です。
MSSQLのあるテーブルにレコード追加する所でエラーが出て困っております。 現象としましては INSERT INTO TEST_TABLE (a, b) VALUES ('ABCD','YUI(O') のようにVALUESに閉じていない括弧が存在する場合です。 中途半端な括弧が存在しない場合や、ちゃんと括弧を閉じている場合は 問題なく追加できます。 尚、MSSQL上で直接SQL文を打てば閉じていない括弧があっても 問題なく追加できます。 データベースへの接続方法はSqlClientを使用しております。 他の括弧で閉じたりするのでしょうか? 閉じていない括弧を入れないようにするという回答以外で、 何か対応策をご存知の方がいらっしゃいましたら、アドバイスお願いします。 | ||||
|
投稿日時: 2006-02-10 22:43
SQLインジェクション対策もかねてSqlParamaterを使用するようにしましょう。
| ||||
|
投稿日時: 2006-02-13 10:11
burton999さん、アドバイス感謝致します。 SqlParameterを調べて使用してみたところ、問題なく実行することが できるようになりました。ありがとうございました。 これでスペースなどにも対応できるようになるのですね。 大変勉強になりました。 例えばこんな感じ…で。 Imports System.Data.SqlClient ・・・・・・ Dim cn As New SqlClient.SqlConnection Dim cmd As New SqlClient.SqlCommand cn.ConnectionString = "Server=" & DB_SERVER & ";Initial Catalog=" & DB_CATALOG & ";User ID=" & DB_USER & ";Password=" & DB_PASSWORD & ";" cn.Open() cmd.Connection = cn cmd.CommandText ="INSERT INTO TEST_TABLE (a, b) VALUES ('ABCD',@Sqlp_b)" cmd.Parameters.Clear() cmd.Parameters.Add(New SqlClient.SqlParameter("@Sqlp_b", SqlDbType.VarChar,5)) cmd.Parameters("@Sqlp_b").Value = 'YUI(O' cmd.ExecuteNonQuery() cn.Close() |
1