如何在vb.net中进行动态sql查询?

时间:2014-06-26 04:59:22

标签: sql vb.net

我试图在vb.net中执行此动态sql查询,其中我声明了两个变量并在每个变量上传递一个SELECT

 Dim cmd As New SqlCommand("Declare @val1 int " & _
                           "Declare @val2 int " & _
                           "SET @val1 = 'SELECT Count(*) from table1tbl'" & _
                           "SET @val2 = 'SELECT Count(*) from table2tbl'", conn)
    Dim rdr As SqlDataReader = cmd.ExecuteReader
    rdr.Read()
    Dim str1 = rdr("@val1")
    Dim str2 = rdr("@val2")
    rdr.Close()

我知道这段代码不对。那么如何才能做到这一点? tnx提前

2 个答案:

答案 0 :(得分:2)

您无法通过sqlcommand执行此操作,因此要执行代码,您必须创建存储过程并添加到结尾:

Select @val1, @val2

将值作为您正在创建的表格返回。

我认为你正在做的事情比你的实际例子更有创意,但无论如何都要在你的select语句中包含所有内容?正确的版本应该是这样的:

选择(从table1tbl中选择count(*)),(从table2tbl中选择count(*))

这将以您想要的格式返回数据,以便您可以使用您发布的代码阅读它。

答案 1 :(得分:1)

Dim sQuery as String
Dim val1 
Squery = <a> SELECT Count(*) from table1tbl </a>.Value
Using cmd As New SqlCommand(sQuery, con)
  If cmd.Connection.State <> ConnectionState.Open Then
    cmd.Connection.Open()
  End If
val1 = cmd.ExecuteScalar()
End Using