执行查询后从行中获取数据

时间:2015-03-16 14:06:33

标签: database vb.net visual-studio-2012 sql-server-2012

我是数据库应用程序开发的新手,虽然我在VB.NET和C ++方面有相当多的经验(自学成才,有些中级)。我在一个表适配器中有一个查询,它有两个参数(用户输入),它们总是从表中返回一行,基于这两个参数。让我们说第X行有A,B和C列。在我的查询中,过滤器在A和B上设置,但它会选择所有字段。 现在,我想在我的一个主要Form对象中显示C的值(让我们在这个例子中说一个Label),但我似乎无法提取它。我知道这可能很容易,但我在DB代码丛林中有点迷失..

[编辑]

道歉,代码位(示例)。

查询:

SELECT Column1,Column2,Column3
从表1中 WHERE(Column1 = @ Parameter1)AND(Column2 = @ Parameter2)

在我的VB项目中:

昏暗的温度
temp = Me.Table1TableAdapter.queryName(Me.MyProjectDBDataSet.Table1,userinput1,userinput2)

到目前为止,一切都很完美,但这也是我被卡住的地方。我怎么说,比如说,将Column3的值(在运行查询后,结果将始终只是Table1中的一行)分配给Label.Text?

我希望这会让它更清晰......

1 个答案:

答案 0 :(得分:0)

Dim db As Database = DatabaseFactory.CreateDatabase
Dim cmd As DbCommand = db.GetSqlStringCommand(query) 'Query is a string containing your SQL command'
Dim sqlDataReader As IDataReader = db.ExecuteReader(cmd)
Dim myObj As New MyObject    
If sqlDataReader IsNot Nothing Then
    'Loop through the rows of the DataReader'
    Do While sqlDataReader.Read()
        'Do something here with the value in Column3'
        myObj.myIntegerProperty= CInt(IIf(IsDBNull(.Item("Column3")), 0, .Item("Column3")))
    Loop
End If