2013-04-30 61 views
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個按鈕。必須聲明標量值@ Tx1

使用VB Express 2010和SQL Server 2008,我通過點擊Project > Add New Item > Service-Based Database等創建了一個SQL數據庫和表格。我想要做的就是將我擁有的文本框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#中;如果是這種情況,請提前道歉:)

+0

非常感謝你......我認爲它有效..但是當我打開DBTestX.mdf數據庫文件的名稱..右擊然後顯示數據表...數據不存在..沒有插入數據...我必須添加新的代碼嗎?或即時看錯誤?非常感謝你 – 2013-04-30 16:29:53

+0

我該如何回答這個問題?非常感謝您提供的信息^ _^ – 2013-04-30 16:46:15

+0

我對VB.NET感到恐怖,但我會盡力提供幫助。我能想到的唯一的事情是:是否存在未捕獲的異常?你可以嘗試單步執行調試器中的'cmd.ExecuteNonQuery'來查看它是否正常進行到'cmd.Close'?如果沒有,你應該能夠查看它拋出的異常。如果你不能在'try' /'catch'中嘗試圍繞'cmd.Parameters.Add'和'cmd.ExecuteNonQuery'查看異常。讓我知道你看到了什麼... – 2013-04-30 16:52:29