2011-07-20 15 views
1

たとえば、SQLではVB.netでSQLの文字列をエンコードする方法

すべては ``右に置き換える必要がありますか?

まあ、そのようなことは既に行っているvb.netによって組み込まれている関数はありますか?

私はそれをエンコードする必要はありません。

ところで、私はSQLデータベースに直接アクセスしません。基本的に私はテキストファイルを作成しており、そのテキストファイルには未処理のSQL文が含まれています。答えのほとんどはSQLデータに直接アクセスすることを扱います。

答えて

7

私は、このようなものが関連する唯一のケースは、パラメータなしでインラインSQLコマンドを実行していたと思います。

これはSQL Injectionの危険性を持っているので、あなたはこのようなコマンドを作成する必要があります。

Dim cmd As New SqlCommand("UPDATE [TableA] SET [email protected] WHERE [email protected]", Conn) 
cmd.Parameters.Add("@ColumnA", SqlDbType.NVarChar).Value = txtColumnA.Text 
cmd.Parameters.Add("@ID", SqlDbType.Int).Value = ID 
cmd.ExecuteNonQuery() 
+1

1の線に沿ってあなたのクエリで

使用パラメータ。人々がSQLクエリを作成するために 'String.Format'を使用しているのは驚くべきことです... –

+1

Grr ..誰かが私に答えて<= 1分で打ち負かすと嫌いです。よく終わった。 –

+2

私は自分のカスタムSQL文字列置換関数を使用していた頃にうんざりしていましたが、私のハッキングされた死んだウェブサイトもそうです:( – Curt

0

stringを使用している場合は、コードに"を使用するため、これらの文字をエスケープする必要はありません。

Dim mySql As String = "SELECT `MyColumn` FROM `Table`" 
7

いけないが、これを試してみてください!私は、SQLインジェクションを避けようとしていることを知っているので、セキュリティについて考えて褒められるべきです。しかし、自分のsanitisationルーチンを圧延することは、間違ってしまうのは簡単なことです。パラメータを使用するための

cmd.CommandText = "select * from customer where id=?id"; 

cmd.Parameters.AddWithValue("?id",CustomerIDValue); 
+0

これらを挿入にどのように使用すればよいでしょうか?パラメータを文字列として格納します。追加しないと、パラメータが使用されていないことを示すプログラムがクラッシュします。 – DavidB

関連する問題