我正在尝试从表中获取一些数据并获得错误:“无效的对象名称'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是真实的。
答案 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
。
删除该词组,看看您是否得到了您期望的内容。