pha*_*anx 1 vb.net insert sql-server-2008 visual-studio executenonquery
你能告诉我这段代码有什么问题吗?
我是否需要使用DataAdapter插入表格?
我知道没问题connectionString,因为我在Server Explorer上测试了它.
Dim mydao As New Connection
Dim connectionString As String = mydao.GetConnectionString()
Dim connection As New SqlConnection(connectionString)
Dim cmd As New SqlCommand
Public Function add(ByVal area As String, ByVal user As String) As Integer
cmd.CommandText = "INSERT into Area (Area, user) VALUES ('" + area + "','" + user + "')"
Try
connection.Open()
Dim cant As Integer = cmd.ExecuteNonQuery()'it throws exception here
connection.Close()
Return cant
Catch ex As Exception
Console.WriteLine(ex.Message)
Return 0
End Try
End Function
Run Code Online (Sandbox Code Playgroud)
上面的代码刚刚失败ExecuteNonQuery(),无法解释原因.
TARGET FIELDS(SQL Server 2008):
AREA varchar(100) NOT NULL ,
USER varchar(100) NOT NULL
Run Code Online (Sandbox Code Playgroud)
我收到的例外是: Connection property has not initialized
das*_*ash 10
这段代码存在一些问题.
最重要的是您没有设置Command的Connection属性,因此该命令无法知道如何连接到数据库.
最后,除非您需要,否则不要在函数外部声明连接和命令.只要您需要它们,您应该只保留连接和命令.
所以你的功能最终看起来像:
Public Function add(ByVal area As String, ByVal user As String) As Integer
Dim mydao As New Connection
Using connection As New SqlConnection(mydao.ConnectionString())
Using command As New SqlCommand()
' Set the connection
command.Connection = connection
' Not necessary, but good practice
command.CommandType = CommandType.Text
' Example query using parameters
command.CommandText = "INSERT into Area (Area, user) VALUES (@area, @user)"
' Adding the parameters to the command
command.Parameters.AddWithValue("@area", area)
command.Parameters.AddWithValue("@user", user)
connection.Open()
Return command.ExecuteNonQuery()
End Using ' Dispose Command
End Using ' Dispose (and hence Close) Connection
End Function
Run Code Online (Sandbox Code Playgroud)
请注意,目前,您将一直返回0.上面的例子只是抛出一个异常,而不是必须检查函数返回的值.这使得代码稍微更清晰(因为调用者必须理解0是一个错误条件),并且,如果您需要处理异常,只需在Try-Catch块中包含对此函数的调用
| 归档时间: |
|
| 查看次数: |
23131 次 |
| 最近记录: |