2012-10-10 108 views
0

嘿,夥計們我得到一個問題對象引用未設置爲對象的實例。我是一個完整的初學者,所以任何指令/解決方案將不勝感激。動態過濾Datagridview VB

進口System.Data.SqlClient的 進口MySql.Data.MySqlClient

Public Class Form1 



Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)  Handles MyBase.Load 
    Dim connectionstring As String 
    Dim commandtext As String 
    Dim da As MySqlDataAdapter 
    Dim table As DataTable 
    commandtext = "select * From student" 
    connectionstring = "Server=*****;Database=Harry;Uid=****;Pwd=****;Allow Zero Datetime=True;" 


    Try 
     da = New MySqlDataAdapter(commandtext, connectionstring) 
     table = New DataTable 
     da.Fill(table) 
     DataGridView1.DataSource = table 

    Catch ex As Exception 
     MsgBox(ex.ToString) 



    End Try 
    Dim ds As New DataSet 
    da = New MySqlDataAdapter 
    da.Fill(ds, "student") 


    DataGridView1.DataSource = ds.Tables("student") 


End Sub 


Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged 

    ds.Tables("student").DefaultView.RowFilter = "student_id LIKE '%" & TextBox1.Text & "%' OR name LIKE '%" & TextBox1.Text & "*'" 

End Sub 

末級

回答

1

它看起來對我來說,你的問題是DS的聲明。

正如你打算使用它不止一個地方嘗試聲明它作爲一個全局變量。我沒有看到你聲明它的方式有什麼問題,簡單的把'Dim ds As New DataSet'放在你的類中,但是在加載事件之上。

+0

感謝您的回覆。我現在得到錯誤System.argumentexception。初始化字符串的格式不符合從索引69開始的規範。我單擊確定我的表單加載,但是當我鍵入到文本框 - 我得到相同的前一個錯誤「對象引用未設置爲對象的實例」。 – user1712552

+0

這聽起來像連接字符串不正確或沒有正確設置。或者SQL權限有問題。這解釋了最初的錯誤!然後,由於連接字符串不正確,沒有設置爲對象實例的對象引用將被解釋爲您沒有與數據庫的連接。我發現這個線程可能有助於描述你的問題:http://stackoverflow.com/questions/5219676/format-of-the-initialization-string-does-not-conform-to-specification-starting-a它可能不匹配你的環境完全按原則是一樣的。 – GeorgeK

+0

我覺得我做錯了所有事情。我一直在閱讀,我認爲我最初的方法是不正確的。 – user1712552