【问题标题】:dataset count rows数据集计数行
【发布时间】:2012-08-28 16:39:26
【问题描述】:

我想获取DataSet的行数,但是这里的代码抛出了异常

Dim con As New SqlConnection("server=localhost;database=MSDSS;Integrated Security=True")
Dim i As Integer
con.Open()
Dim qstr As String = "Select * From SJournal"
Dim sqladp As New SqlDataAdapter(qstr, con)
Dim dt As New DataSet

sqladp.Fill(dt, "SJ")
Dim j As Integer = dt.Tables("SJ").Rows.Count
For i = 0 To j Step 1
    Dim rowname As String = dt.Tables("SJ").Rows(i)("JournalName")
Next

这是我计算字符串相似度的方法

Dim Kq As Double = 2
Dim Kr As Double = 1
Dim Ks As Double = 1
Dim ss() As Char = rowname.ToCharArray()
Dim st() As Char = journalname.ToCharArray()
Dim q As Integer = ss.Intersect(st).Count()
Dim s As Integer = ss.Length - q
Dim r As Integer = st.Length - q
Dim total As Double = (Kq * q) / (Kq * q + Kr * r + Ks * s)

请给我解决办法

【问题讨论】:

    标签: asp.net vb.net count dataset row


    【解决方案1】:

    Datatable 就像一个数组(在某种程度上,当你在 for 上使用它时),数组的索引编号从 0 到 N-1

    考虑到N是行数,你应该修改这个

    Dim j As Integer = dt.Tables("SJ").Rows.Count
    

    Dim j As Integer = dt.Tables("SJ").Rows.Count -1
    

    所以,如果得到 3 个rows,for 循环将从 0 变为 2

    【讨论】:

      【解决方案2】:

      我希望你的 for 循环

      For i = 0 To j Step 1
          Dim rowname As String = dt.Tables("SJ").Rows(i)("JournalName")
      Next
      

      应该以 j-1 作为上限,即。

      For i = 0 To j-1 Step 1
          Dim rowname As String = dt.Tables("SJ").Rows(i)("JournalName")
      Next
      

      【讨论】:

        【解决方案3】:

        如果您使用 dataadapter,则无需显式打开连接。

        如需更多参考,请访问: http://forums.asp.net/t/1663393.aspx/1

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-03-20
          • 1970-01-01
          • 2013-01-26
          • 1970-01-01
          • 2016-07-02
          • 2012-11-26
          相关资源
          最近更新 更多