必须声明标量值@ Tx1

时间:2013-04-30 16:08:03

标签: mysql

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上的新数据插入到唯一的列中在桌子上。但是,我无法这样做。

你能帮助我指出问题的原因吗?还有其他建议吗?

1 个答案:

答案 0 :(得分: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#;如果是这样的话,请事先道歉:)