0
これは私のデータセットに行を挿入しようとしているコードです。 sqlConnectionが開かれるまで正しく実行されます。しかし、nonQueryの実行は 'System.Data.SqlClient.SqlException'をスローします。私は接続文字列に何か問題があると考えて、app./configファイルからコピーしました。何が間違っているのか分かりません。また、私はパラメータ化されたSQLクエリを使用する必要があることを知っている、私は後でそれを実装します。vb.netのmicrosoft SQLサーバーを使用して、実行時にデータセットに値を挿入するには
Dim sqlConnection1 As New System.Data.SqlClient.SqlConnection("Data Source=(localdb)\MSSQLLocalD;Initial Catalog=ContactInfo;Integrated Security=True;Pooling=False")
Dim cmd As New SqlClient.SqlCommand
cmd.CommandType = CommandType.Text
cmd.CommandText = "INSERT INTO Table (ID, FirstName, MiddleName, LastName, Type, Telephone, Extension, Email) VALUES (" + row.ID.ToString + "," + "'" + row.FirstName + "'" + "," + "'" + row.MiddleName + "'" + "," + "'" + row.LastName + "'" + "," + "'" + row.Type + "'" + "," + row.Telephone.ToString + "," + "'" + row.Extension + "'" + "," + "'" + row.Email + "')"
cmd.Connection = sqlConnection1
sqlConnection1.Open()
cmd.ExecuteNonQuery()
sqlConnection1.Close()
完全エラー例外の投稿 –
私がここに見る最初の大きな問題は、あなたのコードがSQLインジェクションに広く開いていることです。あなたは、パラメータ化されたクエリについて読んで理解し、使い始める必要があります。 "私は後でそれを修正する"の罠に陥ってはいけません。現実はあなたが実際にそれをしないということです。初めて正しく行う方法を学ぶだけです。一度学んだら、もう時間はかかりません。あなたが私たちに推測しなければならないエラーメッセージを教えない限り、手元の問題については.... –
プログラミングの最初の法則:_ "後で" _ - equals - "は決して起こらないだろう"と私は実装します。値のいくつかに '' '文字が含まれていると' SqlException'が出ます - 再び 'SqlParameter'を使い、あなたの時間を節約します。また、 'vb.net'の文字列を連結するには'& '文字を使用します。あなたのコードファイルの最初の行に 'Option Strict On'と書いておけば、コンパイラがエラーを見つけるのを助けます。 – Fabio