24小时热门版块排行榜    

查看: 1158  |  回复: 1

zzahkj

木虫 (著名写手)


[交流] VB.net将Excel导入到Access但datagridview上不能显示更新后的数据?

Private Sub 数据导入ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 数据导入ToolStripMenuItem.Click
        Dim dresult As DialogResult = Me.openFileDialog1.ShowDialog()
        If dresult = System.Windows.Forms.DialogResult.OK Then
            Dim filepath As String = openFileDialog1.FileName
            If filepath = "" Then
                MessageBox.Show("请选择要导入的Excel文档!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Return
            Else
                Dim ds As New DataSet()
                '取得数据集
                '调用下面的函数
                ds = xsldata(filepath)
                'dataGridView2.DataSource = ds.Tables[0];
                Dim errorcount As Integer = 0 '记录错误信息条数
                Dim updatecount As Integer = 0 '更新信息条数
                Dim insertcount As Integer = 0 '记录插入成功条数
                Dim mess As String = ""
                Dim i As Integer
                For i = 0 To (ds.Tables(0).Rows.Count) - 1
                    Dim mc As String = ds.Tables(0).Rows(i).Item(0).ToString  '读取每一行的第一列数据
                    Dim kbc As Double = CType(ds.Tables(0).Rows(i).Item(1), Double)
                    Dim hsc As Double = CType(ds.Tables(0).Rows(i).Item(2), Double)
                    Dim shtc As Double = CType(ds.Tables(0).Rows(i).Item(3), Double)
                    Dim ysc As Double = CType(ds.Tables(0).Rows(i).Item(4), Double)
                    Dim djc As Double = CType(ds.Tables(0).Rows(i).Item(5), Double)
                    Dim stc As Double = CType(ds.Tables(0).Rows(i).Item(6), Double)
                    Dim dzc As Double = CType(ds.Tables(0).Rows(i).Item(7), Double)
                    Dim hhc As Double = CType(ds.Tables(0).Rows(i).Item(8), Double)
                    Dim dhc As Double = CType(ds.Tables(0).Rows(i).Item(9), Double)
                    Dim zjc As Double = CType(ds.Tables(0).Rows(i).Item(10), Double)
                    Dim yx As Double = CType(ds.Tables(0).Rows(i).Item(11), Double)
                    Dim bgzl As Double = CType(ds.Tables(0).Rows(i).Item(12), Double)
                    Dim gjzs As Double = CType(ds.Tables(0).Rows(i).Item(13), Double)
                    Dim kxb As Double = CType(ds.Tables(0).Rows(i).Item(14).ToString, Double)
                    Dim yxzs As Double = CType(ds.Tables(0).Rows(i).Item(15).ToString, Double)

                    Dim Str As String = "insert into zuankong(名称,空白层,含水层,砂土层,岩石层,堆积层,死土层,地质层,火化层,地核层,中间层,岩性,比贯入阻力,标贯击数,孔隙比,液性指数) Values ('" + mc + "','" & Trim(kbc) & "','" & Trim(hsc) & "','" & Trim(shtc) & "','" & Trim(ysc) & "','" & Trim(djc) & "','" & Trim(stc) & "','" & Trim(dzc) & "','" & Trim(hhc) & "','" & Trim(dhc) & "','" & Trim(zjc) & "','" & Trim(yx) & "','" & Trim(bgzl) & "','" & Trim(gjzs) & "','" & Trim(kxb) & "','" & Trim(yxzs) & "') "
                Dim conn As OleDb.OleDbConnection = New OleDb.OleDbConnection
                    conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & System.Windows.Forms.Application.StartupPath & "\zkshujuku.mdb;"
                    Dim cmd As OleDb.OleDbCommand = New OleDb.OleDbCommand
                    conn.Open() '打开连接
                    cmd.Connection = conn
                    Dim da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(Str, conn)
                    da.Fill(ZkshujukuDataSet, "zuankong"
                    DataGridView1.DataSource = ZkshujukuDataSet.Tables(0) '更换datagridview1的数据源
                    DataGridView1.Refresh()
                Next
                   End If
        End If
    End Sub

    Private Function xsldata(ByVal filepath As String) As DataSet

        Dim strCon As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;IMEX=1'"

        Dim Conn As New System.Data.OleDb.OleDbConnection(strCon)

        Dim strCom As String = "SELECT * FROM [Sheet1$]"

        Conn.Open()

        Dim myCommand As New System.Data.OleDb.OleDbDataAdapter(strCom, Conn)

        Dim ds As New DataSet()

        myCommand.Fill(ds, "[Sheet1$]"
        Conn.Close()

        Return ds
    End Function 'xsldata
上面可以实现Excel导入到Access功能,但是在DataGridView控件上不能显示更新后的数据还是更新前的?菜鸟刚接触这个,不是很懂,希望高手指点迷津!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

phenols

木虫 (小有名气)


★ ★
zzahkj(金币+1):谢谢参与
jjdg(金币+1): 感谢参与 2011-07-31 14:51:37
关于编程语言的问题建议到http://community.csdn.net/这些专业的地方,回答也快
2楼2011-07-31 14:39:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zzahkj 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见