如何从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