none
如何彻底删完datagridview data就算打开新file都不会重叠或出现 RRS feed

  • 问题

  • 我篇写了彻底删完datagridview data的代码

    但是我失败了。以下是我尝试了的代码

    我想呈现的是当user 删完所有datagridview 的数据后打开新的file 都是最新和不会出现重叠的问题

    Private Sub SurroundingSub()
            Dim rowCount As Integer = dgv1.Rows.Count

            For n As Integer = 0 To rowCount - 1
                If dgv1.Rows(0).IsNewRow = False Then dgv1.Rows.RemoveAt(0)
            Next
        End Sub

     dgv1.DataSource = Nothing

    dgv1.DataSource = DBNull.Value

    以下是我遇到的状况

    第一张图是当user开第一个file出现的file。

    第二张图是当user开第二个file出现重叠的状况。

    我希望呈现的是当user clear完datagridview 的file后呈现的datagridview 是想图三

    2020年3月17日 9:14

答案

  • Hi christing,

    尝试使用以下方法来清空DataGridView中的数据:

        Private Sub ClearDGV()
            DataGridView1.DataSource = Nothing
            DataGridView1.Rows.Clear()
        End Sub

    希望可以帮助你解决问题。

    Best Regards,

    Xingyu Zhao


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已标记为答案 christing 2020年3月23日 14:49
    2020年3月18日 6:03
    版主
  • Hi christing,

    我根据你提供的代码进行了测试,发现问题是由'ds1'引起的,你需要及时清理DataSet。

    Private Sub btnopen_excel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnopen_excel.Click
          
           ds1.Clear()
    
          '...
    
    End Sub

    希望这可以帮助你解决问题。

    Best Regards,

    Xingyu Zhao


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已标记为答案 christing 2020年3月23日 14:49
    2020年3月23日 8:01
    版主

全部回复

  • Hi christing,

    尝试使用以下方法来清空DataGridView中的数据:

        Private Sub ClearDGV()
            DataGridView1.DataSource = Nothing
            DataGridView1.Rows.Clear()
        End Sub

    希望可以帮助你解决问题。

    Best Regards,

    Xingyu Zhao


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已标记为答案 christing 2020年3月23日 14:49
    2020年3月18日 6:03
    版主
  • @Xingyu Zhao

    感谢你的回复。

    经过我尝试你提供的代码?我还是失败。我的数据还是会在user每open 读件时还是会重叠。


    2020年3月18日 9:25
  • Hi christing,

    为了进行测试并帮助解决你的问题,你能提供一段完整的代码来帮助我们重现你的问题吗?

    期待你的更新。

    Best Regards,

    Xingyu Zhao


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2020年3月19日 1:27
    版主
  • @Xingyu Zhao

    感谢你的回复。

    我篇写了read excel 和 read access file的代码并呈现在datagridview的file以下是我的代码。

    我遇到的情况是当我read 了excel file 后我clear 数据后,当我在读取其他file 我的datagridview 后出现重叠数据的问题就像上图。

    这是我read excel file 的 代码

       Private Sub btnopen_excel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnopen_excel.Click
            Dim _filename As String = OpenFile()

            Dim _conn As String

            _conn = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & _filename & ";" & "Extended Properties=""Excel 12.0;HDR=NO;"""


            Dim _connection As OleDbConnection = New OleDbConnection(_conn)

            Dim da As OleDbDataAdapter = New OleDbDataAdapter()

            Dim _command As OleDbCommand = New OleDbCommand()

            _command.Connection = _connection

            _command.CommandText = "SELECT * FROM [Sheet1$]"

            da.SelectCommand = _command

            Try

                da.Fill(ds1, "sheet1")

                MessageBox.Show("Read Successful")

                Me.dgv1.DataSource = ds1

                Me.dgv1.DataMember = "sheet1"

            Catch e1 As Exception

                MessageBox.Show("Read Fail, correct Column name in the sheet!")

            End Try


        End Sub

    这是我read access的代码

      Private Sub btnopen_data_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnopen_data.Click

            Dim objConn As String = "Provider=Microsoft.Jet.Oledb.4.0; Data Source=D:/mydata.mdb;"

            Dim objDS As New DataSet
            Dim objDT As New DataTable
            objDS.Tables.Add(objDT)

            Dim objDA As New OleDb.OleDbDataAdapter
            objDA = New OleDbDataAdapter("SELECT * FROM Sheet1", objConn)
            objDA.Fill(objDT)

            dgv1.DataSource = objDT.DefaultView


        End Sub

    感恩你的回复

    2020年3月21日 6:16
  • Hi christing,

    我根据你提供的代码进行了测试,发现问题是由'ds1'引起的,你需要及时清理DataSet。

    Private Sub btnopen_excel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnopen_excel.Click
          
           ds1.Clear()
    
          '...
    
    End Sub

    希望这可以帮助你解决问题。

    Best Regards,

    Xingyu Zhao


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已标记为答案 christing 2020年3月23日 14:49
    2020年3月23日 8:01
    版主