1

我正在尝试从表中获取一些数据并得到错误:“无效的对象名称'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 是真实的。

4

2 回答 2

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 参数的值。这是不可能的,因为通常数据读取器使用的连接一直很忙,直到数据读取器保持打开状态。

于 2013-06-10T13:57:31.153 回答
0

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

删除那个短语,看看你是否得到了你所期望的。

于 2013-06-10T13:57:35.120 回答