2012-09-04 26 views
1

我想獲得的行數的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) 

請給我的解決方案

回答

1

Datatable作品等的陣列(以某種方式,當您使用它在對),和數組的索引記數從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

0

我期待你的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