我想从我的数据库表中获得一个记录与此代码:如何从使用OleDbDataReader对象的SQL SELECT语句中获取结果?
Dim getParentID = "SELECT Parent_ID FROM ParentandGuardian WHERE First_Name = @fname AND Middle_Name = @mname AND Last_Name = @lname"
comm = New OleDbCommand(getParentID, MyConn)
comm.Parameters.AddWithValue("@fname", txtPGFirstName.Text)
comm.Parameters.AddWithValue("@mname", txtPGMiddleName.Text)
comm.Parameters.AddWithValue("@lname", txtPGLastName.Text)
Reader = comm.ExecuteReader
MsgBox(Reader.GetValue(0))
我得到这个错误指出来的MsgBox(Reader.Getvalue(0))
声明:
类型的未处理的异常“系统。 InvalidOperationException'发生在System.Data.dll中
附加信息:行/列不存在任何数据。
我很确定查询应该至少有一个结果。我检查了查询指向的特定数据库表,并且值在那里。我只是不知道为什么我不断收到这个错误。我对VB.NET来说很新。请多多包涵。
第一:不要使用.AddWithValue。第二:在你可以访问字段之前,你将不得不做一个Reader.Read() – muffi
@ muffi谢谢你,先生!我终于明白了!这对我很有帮助。我还有一个问题。你为什么说,不要使用.AddWithValue?这可能会帮助我与VB.NET的未来挣扎。 TIA。 –
因为.AddWithValue有时会猜测错误的字段类型。最好添加一个参数,如'.Add(“@param”,MySqlDbType.Int32).Value = 0' – muffi