选择预准备语句行计数

时间:2014-05-22 15:06:16

标签: sql vb.net prepared-statement

我可能会在这里比赛迟到,但是由于每个人现在都知道未来发展的原因,我强迫自己准备好自己的准备。值得庆幸的是到目前为止一帆风顺!但是,我正在努力解决以下问题。下面是我的VB.NET代码片段:

Dim strConnect As String = "server!"  
Dim cmd As New SqlCommand
Dim cn as SqlConnection = New SqlConnection(strConnect)

Dim str As String = ""
Dim row As SqlDataReader 
cmd = New SqlCommand("SELECT top 10 TypeOfDeliciousPie FROM FamilyLuncheon WHERE MomsSecretSauce  like '%' + @sstring + '%'", cn)
cmd.Parameters.Add("@sstring", SqlDbType.NVarChar).Value = sstring
cn.Open()
row = cmd.ExecuteReader()

While row.Read()
    str += """" + row(TypeOfDeliciousPie ) + ""","
End While
cn.close()

现在,我遇到的问题是我需要在循环数据集之前计算总行数。简而言之,我正在使用返回的数据手动构建一个简单的json字符串,并且为了使jquery正常工作,我需要总行数。

我应该如何最好地从SELECT准备好的声明中获取总行数?在我可以简单地将它加载到数据表中之前简单table.Rows.count但我似乎找不到类似的东西。如果以前已经报道,我表示歉意。我在这里搜索并在过去几个小时谷歌寻找合适的解决方案。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

使用DataTable查询时,您仍然可以使用SqlCommand,使用SqlDataAdapter或使用DataTable.Load,例如

Dim dt As DataTable = New DataTable()
dt.Load(cmd.ExecuteReader())

然后像您习惯的那样使用dt.Rows.Count