为什么“从字符串”ID“转换为类型整数无效”在我的程序中显示?
问题描述:
我试图在ID的组合框的帮助下在文本框上显示我的数据库。但是,每当我运行我的程序时,错误“从字符串”ID“转换为类型整数无效”不断出现。我该怎么办?为什么“从字符串”ID“转换为类型整数无效”在我的程序中显示?
Private Sub FormAdd_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
cnn = New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Database.accdb")
Dim reader As OleDb.OleDbDataReader
Try
cnn.Open()
Dim str As String = "select * from TableName"
command = New OleDb.OleDbCommand(str, cnn)
reader = command.ExecuteReader
While reader.Read
Dim sId = reader.GetName("ID")
ComboBox1.Items.Add(sId)
End While
cnn.Close()
Catch ex As OleDb.OleDbException
MessageBox.Show(ex.Message)
Finally
cnn.Dispose()
End Try
End Sub
Visual Basic中说,错误就设在这里:
Dim sId = reader.GetName("ID")
太谢谢你了!
答
使用顺序位置是只是明显的邪恶。为什么?首先,如果将来更改数据库的结构,它可能会导致程序崩溃。其次,您正在返回50个字段的映像,并且您正在尝试从现在开始的六个月内调试代码,您将不得不在SELECT语句中开始计数字段(如果您使用序号表示法,则只需指定字段,肯定知道的顺序)。
如果你打算使用序号位置,那么我会建议你做这样的事情
Dim sId = reader.GetName(reader.GetOrdinal("ID"))
现在的作品!非常感谢!前一段时间,我一直使用GetValue()函数,并且我不知道列号是要在那里输入的列号。谢谢! – 2014-12-05 13:16:32