我在command2.ExecuteNonQuery()上遇到“连接属性未正确初始化”错误消息。
我有一个SQL查询,它在网格视图中显示其结果(仅一个结果)我试图通过SQL查询中的特定结果来获取此结果以更新数据库
Dim staffid = TextBox1.Text
Dim conn As New SqlConnection
conn.ConnectionString = SqlDataSource1.ConnectionString
Dim command1 As New SqlCommand("SELECT StaffDetails.StaffID, SUM(HolidayRequests.RequestTotalDays) AS Expr1, HolidayEntitlement.HoldayEntitlementID, HolidayEntitlement.UserName FROM HolidayRequests INNER JOIN StaffDetails ON HolidayRequests.Username = StaffDetails.UserName INNER JOIN HolidayEntitlement ON StaffDetails.UserName = HolidayEntitlement.UserName WHERE (StaffDetails.StaffID = staffID) GROUP BY StaffDetails.StaffID, HolidayRequests.ApprovalStatus, HolidayEntitlement.HoldayEntitlementID, HolidayEntitlement.UserName HAVING (HolidayRequests.ApprovalStatus = N'approved')", conn)
Dim command2 As New SqlCommand()
conn.Open()
Dim rdr As SqlDataReader
rdr = command1.ExecuteReader
Dim UpdateQuery As String
While (rdr.Read())
UpdateQuery = "UPDATE HolidayEntitlement set Holiday_Taken = @Expr1 WHERE HolidayEntitlementID = @HolidayEntitlementID"
command2.Parameters.AddWithValue("@Expr1", rdr("Expr1").ToString())
'run update query
command2.CommandText = UpdateQuery
command2.ExecuteNonQuery()
End while
答案 0 :(得分:1)
SqlCommand
需要指定的Connection
。
command2.Connection = conn
除此之外,您应该查看using-statement
(隐含地关闭/处置连接)。这应该用于实现IDisposable
的每个类。
Using conn = New SqlConnection(SqlDataSource1.ConnectionString)
Using command1 = new SqlCommand(sql, conn)
' insert your code here .... '
End Using
End Using