【发布时间】:2013-03-19 04:50:55
【问题描述】:
我正在尝试使用 SqlDataReader 从数据库表中检索信息。我有两列,一个是字符串,另一列是位。该字符串将被填充到一个文本框中。但是当我想将它填充到单选按钮列表时,它的问题并没有发生。它一直给我这个错误Specified cast is not valid.这是我的vb服务器端代码:
Dim dt As DataTable = New DataTable()
Dim command As New SqlCommand(query2, conn)
Dim param As New SqlParameter()
param.ParameterName = "@cUserName"
param.Value = Session("Edit")
command.Parameters.Add(param)
Dim dr As SqlDataReader = command.ExecuteReader()
If dr.HasRows Then
dr.Read()
tbUsername.Text = dr.GetString(0)
rblDept.SelectedIndex = dr.GetByte(1)
End If
我尝试了dr.GetByte(1),但它不起作用。请帮帮我。
【问题讨论】:
-
您尝试过
Convert.ToInt32(dr.GetByte(1))还是可能的CInt()? -
想一想,据我所知,具有位值的列是二进制的,存储 0 或 1(或 null 在这种情况下您可能会遇到问题)。你应该能够做到
CInt(dr(1)),它应该可以工作。 -
@yu_ominae 是的,我试过了,它给了我同样的错误!
-
@yu_ominae 我试过
CInt(dr(1))它仅在值为0时检索。没有意义 -
@yu_ominae 我只是试图把它放在一个标签中,我很惊讶为什么当值为 false 时它给我 -1。我做什么壳?
标签: vb.net gridview sqldatareader