我编写了将TextBox数据插入SQL数据库的代码。我的代码工作正常,但是当我打开表时没有添加任何数据。这是我的代码:
Private Sub save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles save.Click
Dim connetionString As String
Dim connection As SqlConnection
Dim adapter As New SqlDataAdapter
Dim tabl As New DataTable
Dim sql As String
connetionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True"
connection = New SqlConnection(connetionString)
Try
sql = "insert into model (no,fistname,lastname) values('" & TextBox1.Text & "','" & TextBox2.Text & "','" & TextBox3.Text & "')"
adapter.InsertCommand = New SqlCommand(sql, connection)
connection.Open()
adapter.InsertCommand.ExecuteNonQuery()
MsgBox("Row inserted !! ")
connection.Close()
Catch ex As Exception
MsgBox(ex.ToString)
connection.Close()
End Try
End Sub
答案 0 :(得分:9)
请勿使用数据适配器。在这种情况下,这只会使事情过于复杂。尝试:
Using SqlConnection connection = new SqlConnection(connectionString)
sql = "insert into model (no, firstname, lastname)" & _
" values (@val1, @val2, @val3)"
Dim SqlCommand command = new SqlCommand(sql, connection)
command.Parameters.Add("val1", TextBox1.Text)
command.Parameters.Add("val2", TextBox2.Text)
command.Parameters.Add("val3", TextBox3.Text)
command.ExecuteNonQuery()
End Using
这样,您不必担心适配器(因为您没有使用GridView)并且您使用参数化查询而不是动态构建SQL(允许SQL注入攻击)。
答案 1 :(得分:1)
我会在这里解决问题 - 我甚至不确定它是什么语言 - 并建议您可能需要显式提交数据库事务。
答案 2 :(得分:1)
如何确认未插入数据?
我怀疑您的问题可能与使用SQL Express的用户实例有关。见http://msdn.microsoft.com/en-us/library/bb264564%28SQL.90%29.aspx