http://community.csdn.net/Expert/topic/4150/4150864.xml?temp=.6786005我现在的做法是在下拉列表中显示表名(vb.net): ————————————————————————————————————————————— Function access_connection(ByVal stradd As String) As Object Dim conn As OleDb.OleDbConnection conn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Password=;User ID=;Data Source=" & stradd) conn.Open() Return conn End Function ————————————————————————————————————————————— Function excel_connection(ByVal stradd As String) As Object Dim conn As OleDb.OleDbConnection conn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Password=;User ID=;Data Source=" & stradd) conn.Open() Return conn End Function ————————————————————————————————————————————— Function dbf_connection(ByVal stradd As String) As Object Dim conn As Odbc.OdbcConnection conn = New Odbc.OdbcConnection("SourceType=DBF;Driver={Microsoft Visual FoxPro Driver};SourceDB=" & stradd) conn.Open() Return conn End Function (dbf格式用odbc连接需要在机器上安装Microsoft ODBC .NET Data Provider(odbc_net.msi),先前尝试用oledb连接,发现dbf数据库中的中文用datagrid控件显示为乱码,用odbc就没问题了,这个你可以研究下~~) ————————————————————————————————————————————— Public Function GetTables(ByVal conn As OleDbConnection) As DataTable Dim schemaTable As DataTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, _ New Object() {Nothing, Nothing, Nothing, "TABLE"}) conn.Close() Return schemaTable End Function ————————————————————————————————————————————— Select Case database_type Case "ACCESS" conn1 = access_connection(sourcedb_name) Case "EXCEL" conn1 = excel_connection(sourcedb_name) Case "DBF" sourcedb_name = "D:\upload_database\" End SelectDim str As String Select Case database_type Case "ACCESS" Dim sourceTable As DataTable = GetTables(conn1) conn1.Close() For i = 0 To sourceTable.Rows.Count - 1 str = sourceTable.DefaultView.Item(i).Row(2) DropDownList1.Items.Add(New ListItem(str, str)) Next Case "EXCEL" Dim sourceTable As DataTable = GetTables(conn1) conn1.Close() For i = 0 To sourceTable.Rows.Count - 1 str = sourceTable.DefaultView.Item(i).Row(2) Dim word() As String = Split(str, "$") DropDownList1.Items.Add(New ListItem(word(0), word(0))) Next Case "DBF" DropDownList1.Items.Add(New ListItem(sourcetable_name.ToString, sourcetable_name.ToString)) End Select
http://blog.csdn.net/zhzuo/archive/2004/07/03/33273.aspx
—————————————————————————————————————————————
Function access_connection(ByVal stradd As String) As Object
Dim conn As OleDb.OleDbConnection
conn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Password=;User ID=;Data Source=" & stradd)
conn.Open()
Return conn
End Function
—————————————————————————————————————————————
Function excel_connection(ByVal stradd As String) As Object
Dim conn As OleDb.OleDbConnection
conn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Password=;User ID=;Data Source=" & stradd)
conn.Open()
Return conn
End Function
—————————————————————————————————————————————
Function dbf_connection(ByVal stradd As String) As Object
Dim conn As Odbc.OdbcConnection
conn = New Odbc.OdbcConnection("SourceType=DBF;Driver={Microsoft Visual FoxPro Driver};SourceDB=" & stradd)
conn.Open()
Return conn
End Function
(dbf格式用odbc连接需要在机器上安装Microsoft ODBC .NET Data Provider(odbc_net.msi),先前尝试用oledb连接,发现dbf数据库中的中文用datagrid控件显示为乱码,用odbc就没问题了,这个你可以研究下~~)
—————————————————————————————————————————————
Public Function GetTables(ByVal conn As OleDbConnection) As DataTable
Dim schemaTable As DataTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, _
New Object() {Nothing, Nothing, Nothing, "TABLE"})
conn.Close()
Return schemaTable
End Function
—————————————————————————————————————————————
Select Case database_type
Case "ACCESS"
conn1 = access_connection(sourcedb_name)
Case "EXCEL"
conn1 = excel_connection(sourcedb_name)
Case "DBF"
sourcedb_name = "D:\upload_database\"
End SelectDim str As String
Select Case database_type
Case "ACCESS"
Dim sourceTable As DataTable = GetTables(conn1)
conn1.Close()
For i = 0 To sourceTable.Rows.Count - 1
str = sourceTable.DefaultView.Item(i).Row(2)
DropDownList1.Items.Add(New ListItem(str, str))
Next
Case "EXCEL"
Dim sourceTable As DataTable = GetTables(conn1)
conn1.Close()
For i = 0 To sourceTable.Rows.Count - 1
str = sourceTable.DefaultView.Item(i).Row(2)
Dim word() As String = Split(str, "$")
DropDownList1.Items.Add(New ListItem(word(0), word(0)))
Next
Case "DBF"
DropDownList1.Items.Add(New ListItem(sourcetable_name.ToString, sourcetable_name.ToString))
End Select