none
請問有關欄位、標題清除的問題~~~~~~ RRS feed

  • 問題

  • 請問有關欄位、標題清除的問題~~~~~~

    原先在DataGridView將在TextBox2查到的資料show在DataGridVeiw裡面,

    如果在TextBox裡面是空白的,那麼DataGridView裡面就會沒有資料,

    我的問題是......我用 DataGridView3.Columns.Clear() 清除時,

    也會將我的標題一起清除掉,

    請問要怎麼樣才能把標題留著,只有標題下的欄位清除掉呢??

     

    程式碼區塊

    Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
            '輸入批號時,所查詢到的資料
            Dim cmd As New SqlClient.SqlCommand("SELECT  A_Component.ComponentID AS 物料編號,B_CprPInvertory.LocationID AS 物料格編號,B_CprPInvertory.LocUpID AS 儲位編號,B_CprPInvertory.LocTopID AS 倉庫編號,B_CprPInvertory.DPNum AS 庫存量,A_Component.Component AS 物料名稱,A_Component.UPrice AS 批號單價,B_CprPInvertory.BatchNo FROM A_Component INNER JOIN  B_CprPInvertory ON A_Component.ComponentID = dbo.B_CprPInvertory.ComponentID WHERE B_CprPInvertory.BatchNo  like '%" + Me.TextBox2.Text + "%'", cn)
            da.SelectCommand = cmd
            ds.Tables.Clear()
            da.Fill(ds, "BatchNo")
            DataGridView3.Columns.Clear()    '先將之前的欄位清除
            DataGridView3.DataSource = ds.Tables("BatchNo")
            If TextBox2.Text = "" Then
                DataGridView3.Columns.Clear()
            End If

     

     

    2007年11月27日 上午 07:00

解答

  • 一直用 "~~~~~~~~" 是怎麼樣?

    看了就覺得煩。

     

    程式碼區塊

            da.SelectCommand = cmd
            ds.Tables.Clear()
            da.Fill(ds, "BatchNo")
            

            DataGridView3.DataSource = ds.Tables("BatchNo")
            If TextBox2.Text = "" Then
                ds.Tables("BatchNo").Rows.Clear();

                DataGridView3.DataSource = ds.Tables("BatchNo")
            End If

     

     

     

    2007年11月27日 上午 07:57
    版主

所有回覆

  • Hi,

    如果說DataGridView的資料來源那些屬性都設定好了,當對應的DataSet內容改變了之後,您可以呼叫DataGridView的Refresh方法去刷新內容,應該不用每一次都去重新設定關連。而DataTable的內容是空的時候,DataGridView裡面自然就不會有資料了,參考看看。

     

    2007年11月27日 上午 07:22
  • 程式碼區塊
            da.SelectCommand = cmd
            ds.Tables.Clear()
            da.Fill(ds, "BatchNo")
            DataGridView3.Columns.Clear()    '先將之前的欄位清除
            DataGridView3.DataSource = ds.Tables("BatchNo")
            If TextBox2.Text = "" Then
                DataGridView3.Rows.Clear()
            End If

     

     

     

    2007年11月27日 上午 07:29
    版主
  • bauann~~~~~~~~~

    不好意思!!小妹我資質愚笨.......還是寫不出來!!

    能不能以實例說明呢??

     

     

    小朱~~~~~~~

    DataGridView3.Rows.Clear() ------------------>這行不讓我清除這個清單也!!

    無法清除這個清單。

     

    2007年11月27日 上午 07:44
  • 一直用 "~~~~~~~~" 是怎麼樣?

    看了就覺得煩。

     

    程式碼區塊

            da.SelectCommand = cmd
            ds.Tables.Clear()
            da.Fill(ds, "BatchNo")
            

            DataGridView3.DataSource = ds.Tables("BatchNo")
            If TextBox2.Text = "" Then
                ds.Tables("BatchNo").Rows.Clear();

                DataGridView3.DataSource = ds.Tables("BatchNo")
            End If

     

     

     

    2007年11月27日 上午 07:57
    版主
  • 之前所提的部分可以參考下面程式碼

    程式碼區塊

    Dim CN As SqlClient.SqlConnection
        Dim DA As SqlClient.SqlDataAdapter
        Dim DS As DataSet

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            CN = New SqlClient.SqlConnection(My.Settings.MyConn)
            DA = New SqlClient.SqlDataAdapter("Select * from MyTable", CN)
            DS = New DataSet
            DA.Fill(DS, "MyTable")
            DA.Dispose()
            DataGridView1.DataSource = DS
            DataGridView1.DataMember = "MyTable"
        End Sub

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            DA = New SqlClient.SqlDataAdapter("Select * from MyTable Where Name='Test'", CN)
            DS.Tables("MyTable").Clear()
            DA.Fill(DS, "MyTable")
            DataGridView1.Refresh()
            Application.DoEvents()
        End Sub

     

     

    其實都是對DataSet去操作,DataGridView只是反應出DataSet的內容。

     

    2007年11月27日 上午 08:12
  • HI Bauann

    感謝你附的參考!!

    我會試看看的,感恩!!

     

    2007年11月27日 上午 08:45