首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么从SQL数据库中导出其中一张表的结构到EXCEL

2013-12-05 
如何从SQL数据库中导出其中一张表的结构到EXCEL!我使用的平台是VS2012 SQL2012 WEB 最近在学习过程中,需要

如何从SQL数据库中导出其中一张表的结构到EXCEL!
我使用的平台是VS2012 SQL2012 WEB 
最近在学习过程中,需要将EXCEL里面的资料导入到SQL SERVER里面。
SQL里面的表结构已经建好了。
1.我就是这么想的,在WEB页面上,点一个按钮,把SQL数据库里面想要导出表结构的表,导出一个EXCEL文件并保存在本地。
2.然后在从其他不同结构的EXCEL表取需要的表字段数据,粘贴在刚导出的EXCEL文件里;
3.其次,再将粘贴了数据并结构化的EXCEL文件的数据对应导入到SQL SERVER里面。
以上是我的思路,也是在查相关的资料,但还没有得到解决的办法,请大神们给点建议,看我的方法是否合理,如果不合理,有更好的方法吗?
[解决办法]
这个功能,可以考虑用smo对象来实现的,通过c#代码来实现。

你可以参考一下这个:

Smo类生成创建表的脚本语句
http://wenku.baidu.com/link?url=nE5yGi9k1dbJXvwVFAcbC7KXZojew0d20mlBRF8bHj6qwiGsUJt_TrZH3zbmhBHRKQnuXlWHe3fSdr2pQ6JzcQ0OGMUhzCgWSGPG8gYFXcq
[解决办法]
可以用System.Data.OleDb类的OleDBConnection对象,先取出来execel里面的数据,然后再导入到实体表里面;


    Public Function Query(ByVal Sql As String) As DataSet
        Dim ExcelPathFile As String = "D:\Text\20131114.xls"
        Dim ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ExcelPathFile + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1';"
        Using connection As New OleDbConnection(ConnectionString)
            Dim ds As New DataSet
            Try
                connection.Open()
                Dim command As OleDbDataAdapter = New OleDbDataAdapter(Sql, connection)
                command.Fill(ds, "ds")
            Catch ex As System.Data.OleDb.OleDbException
                Throw New Exception(ex.Message)
            End Try
            Return ds
        End Using
    End Function

    Public Sub ImportDataBaseInfo()
        '根据excel里面的字段,可以导入创建个临时表,先导入到临时表,然后再导入到实体表
        Dim i As Integer = 0
        Dim dt As DataTable
        Try
            dt = OleHelper.Query("select * from Sheet1$").Tables(0)
            Dim strRow1 As String
            Dim strRow2 As String
            For Each row As DataRow In dt.Rows
                strRow1 = F.Left(ToStr(row(0)).Trim(), 30)

                strRow2 = F.Left(ToStr(row(1)).Trim(), 30)
                'strRow3...............
                If i = 0 Then
                    '验证下Excel字段列
                    If strRow1 <> "列1" Then
                        MsgBox("A列1")
                        Exit Sub
                    End If

                    If strRow2 <> "列2" Then
                        MsgBox("B列不是列2")


                        Exit Sub
                    End If
                Else
                    'SQL插入语句 临时表里面
                End If
                i += 1
            Next
            '数据检验,正确话 在导入到数据库中的实体表中.
        Catch ex As Exception
            MsgBox(ex.Message)
            Exit Sub
        End Try

    End Sub

热点排行