2017-04-12 77 views
3

質問があります。ラベル 'N'はすでに宣言されています。ラベル名は、クエリバッチまたはストアドプロシージャ内で一意である必要があります

SQLデータベースにテキストを設定する必要のあるプログラムをvb.netで作成する必要があります。 しかし、毎回私は、データベースへのエクスポート]をクリックすると、プログラムがシャットダウンし、こう述べています。

ラベル「N」は既に宣言されています。ラベル名は、クエリバッチまたはストアドプロシージャ

私は、.NET言語に新たなんだ、これが何を意味するのか分からない内 一意である必要があります。誰かが私を助けることを願っています。

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 

    Dim con As New SqlConnection 
    Dim cmd As New SqlCommand 

    con.ConnectionString = "Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\klaasjelle\documents\visual studio 2017\Projects\Opdracht\Opdracht\Opdracht1.mdf;Integrated Security=True" 

    con.Open() 

    cmd.Connection = con 

    cmd.CommandText = $"INSERT INTO opdracht ('FilePath', 'ImageSide', 'ImageSize') VALUES ('{TextBox1.Text}')" 

    cmd.ExecuteNonQuery() 

End Sub 
+0

あなたが新しい行を作成するときに、あなたは3つの列(ファイルパス、ImageSizeの、ImageSizeの)を持っていますが、それを一つの値だけを与える... –

+3

使用してクエリをパラメータ化し、処分を行いますコマンドと接続。 – Lucero

+0

@Lucero例を挙げることはできますか? –

答えて

2

あなたは正しいコマンドテキストを持っていません。そこに可能なSQLインジェクションをmentionningなし

cmd.CommandText = "INSERT INTO opdracht (FilePath, ImageSide, ImageSize) VALUES ('" 
+ TextBox1.Text + "')" 
+2

彼は{}で変数名とプロパティ名をインライン化できる$記号を使用しているので、彼は有効でなければなりません – Jaxi

関連する問題