1
Imports System.Data
Imports System.Data.SqlClient


Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


        Dim con As New SqlConnection
        Dim cmd As New SqlCommand
        Dim Tx1 As String

        Tx1 = TextBox1.Text

        con.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DBTestX.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"

        con.Open()

        cmd.Connection = con
        cmd.CommandText = "INSERT INTO TestTable(Test) VALUES(@Tx1)"
        cmd.ExecuteNonQuery()

        con.Close()


    End Sub
End Class

このコードでわかるように、フォームは 1 つ、テキスト ボックスは 1 つ、ボタンは 1 つしかありません。

VB Express 2010 と SQL Server 2008 を使用して、クリックProject > Add New Item > Service-Based Databaseなどで SQL データベースとテーブルを作成しました。必要なのは、textbox1 にある新しいデータをテーブルの唯一の列に挿入することだけです。しかし、私はそうすることができません。

問題の原因を指摘するのを手伝ってもらえますか? 他の提案はありますか?

4

1 に答える 1

2

あなたはほとんどそこにいます。@Tx1パラメータを追加してその値を設定する必要があります。

cmd.Connection = con
cmd.CommandText = "INSERT INTO TestTable(Test) VALUES(@Tx1)"
cmd.Parameters.Add("@Tx1", SqlDbType.VarChar, <length of your column>).Value = Tx1
cmd.ExecuteNonQuery()

パラメータを追加するときは、長さを指定する必要があります。

また、私は VB.NET をそれほど頻繁に使用しないため、私の例で C# に陥った可能性があります。その場合は事前にお詫び申し上げます:)

于 2013-04-30T16:13:40.453 に答える