将变量放入sql查询并标记名称vb.net
我在查询字符串和分配标签名中放置了一个变量。可能吗?如果是这样的话,那么为什么我的函数不起作用 我搜索了将变量放入sql查询并标记名称vb.net,vb.net,Vb.net,我在查询字符串和分配标签名中放置了一个变量。可能吗?如果是这样的话,那么为什么我的函数不起作用 我搜索了me.controls(label\u name),发现它可以工作,但为什么它在我的函数中不工作 Public Sub tallyRatingA() Try For n = 1 To 5 For m = 5 To 1 Call conn() query = "SELECT COUNT
me.controls(label\u name)
,发现它可以工作,但为什么它在我的函数中不工作
Public Sub tallyRatingA()
Try
For n = 1 To 5
For m = 5 To 1
Call conn()
query = "SELECT COUNT(a" & n & ") AS tallycount FROM evaluation where teacher_id = '" & tId & "' AND a" & n & " = " & m
command = New MySqlCommand(query, connection)
reader = command.ExecuteReader
While (reader.Read)
If reader.HasRows Then
tally_count = reader.GetString("tallycount")
Else
tally_count = 0
End If
End While
reader.Close()
connection.Close()
Call conn()
query = "SELECT SUM(a" & n & ") AS tallytotal FROM evaluation where teacher_id = '" & tId & "' AND a" & n & " = " & m
command = New MySqlCommand(query, connection)
reader = command.ExecuteReader
While (reader.Read)
If reader.HasRows Then
tally_total = reader.GetString("tallytotal")
total = total + tally_total
Else
tally_total = 0
End If
End While
labelname = "a" & n & "_" & m
Me.Controls(labelname).Text = tally_count & " ( fx: " & tally_total & " )"
connection.Close()
reader.Close()
tally_total = 0
tally_total = 0
total = 0
tally_count = 0
Next m
Next n
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
您应该修改循环并添加IFNULL以检查总和值 之前
For m = 5 To 1
query = "SELECT SUM(a" & n & ") AS tallytotal FROM evaluation where teacher_id = '" & tId & "' AND a" & n & " = " & m
之后
For m = 5 To 1 step -1
query = "SELECT IFNULL(SUM(a" & n & "),0) AS tallytotal FROM evaluation where teacher_id = '" & tId & "' AND a" & n & " = " & m
建议:从DataReader中检索值的更好方法是
reader.GetValue(reader.GetOrdinal(“tallytotal”)
为m=5到1的步骤-1编辑二次循环,谢谢@MahadevMalkarthanks@CraigJohnson它起作用了。但他没有用,有什么建议吗?@Leomel,有什么错误吗?