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 回答