我正在开发一个应用程序,我需要从SQL Server数据库中提取信息并将其显示在标签中。
在申请中,我正在跟踪排球队员的信息。当在数据库中创建名单时,我只是将主键“PlayerID”作为一个标识,所以我没有按照我使用的方式记住每个玩家ID,比如说球衣号码。因此,我想从数据库中提取该玩家ID并将其显示在相应玩家名称旁边的应用程序中的某个表单上。
我已经有一个显示玩家姓名的标签lblPlayer1
。然后我创建了另一个标签lblPlayer1ID
,它将显示从数据库中提取的ID。
这是我的代码:
Dim player1ID As Integer
Dim player1 As String
player1 = lblPlayer1.Text
Dim vballconnection As New SqlConnection
vballconnection.ConnectionString = "[my connection string is here]"
Dim cmd1 As New SqlCommand
cmd1.Connection = vballconnection
cmd1.CommandText = "SELECT PlayerID FROM Player WHERE FirstName = '" & player1 & "'"
vballconnection.Open()
Try
Dim myreader As SqlDataReader = cmd1.ExecuteReader()
If myreader.Read() Then
lblPlayer1ID.Text = myreader.GetValue(0)
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
vballconnection.Close()
我也试过像这样设置Try / Catch:
Try
Dim myreader As SqlDataReader = cmd1.ExecuteReader()
If myreader.Read() Then
player1ID = myreader.GetValue(0)
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
lblPlayer1ID.Text = player1ID.ToString()
问题是我的lblPlayer1ID
没有显示值。当我运行应用程序时,标签仍然只显示默认的“Label1”文本。我已经仔细检查过所有标签都已正确命名。
我在应用程序中的另一个表单上有相同的情况,我也从数据库中提取信息并将其显示在标签中,并且它在那里工作正常。在这种情况下无法弄清楚问题是什么。
答案 0 :(得分:0)
请更改您的尝试
Try
lblPlayer1ID.Text = cmd1.ExecuteScalar()
Catch ex As Exception
MsgBox(ex.Message)
End Try
我还建议您立即在查询中使用参数!