Visual Basic从mysql表中获取数据

时间:2013-06-10 13:54:43

标签: mysql vb.net visual-studio-2010

我正在尝试从表中获取一些数据并获得错误:“无效的对象名称'h'”。我的代码是

 Dim h As Decimal
'some code
 cmd2 = New SqlCommand("insert into h select KvotaX from dbo.Utakmice where ID=@s1 ", conn)


 cmd2.Parameters.AddWithValue("@s1", myReader.GetInt32(1))
'some code
 f = cmd2.ExecuteNonQuery()

我不知道我做错了什么。来自dbo.Utakmice数据类型的KvotaX是真实的。

2 个答案:

答案 0 :(得分:2)

您尝试使用sql语句设置h的值。这是不正确的。

Dim h As Decimal
cmd2 = New SqlCommand("select KvotaX from dbo.Utakmice where ID=@s1 ", conn)
cmd2.Parameters.AddWithValue("@s1", myReader.GetInt32(1))
h = Convert.ToDecimal(cmd2.ExecuteScalar)

select与传入的参数对应的记录,然后读取ExecuteScalar方法的返回值。请注意,仅当查询返回一条记录且只返回一列时,此方法才有效。最好在分配给小数之前安全地检查返回值

Dim o = cmd2.ExecuteScalar
if o IsNot Nothing Then
    h = Convert.ToDecimal(o)
    .....
End If

但是,您的代码提示您正在尝试从打开的MySqlDataReader获取s1参数的值。这是不可能的,因为通常情况下,datareader使用的连接很忙,直到datareader保持打开状态。

答案 1 :(得分:0)

如果您只是尝试获取数据,我认为您不想要 insert into h

删除该词组,看看您是否得到了您期望的内容。