16,722
社区成员




Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.SqlTypes
Imports System.Data.OleDb
Imports System
Imports ADOX
Public Class Form1
Private Const TableGoods As String = "goods"
Private ds As DataSet = Nothing
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim conn As New SqlConnection("SERVER=(local);database=text;user id=sa;pwd=123456")
conn.Open()
Dim SQLtxt As String = ""
SQLtxt = "select * from goods"
Dim cmd As New SqlDataAdapter(SQLtxt, conn)
Dim dsSource As DataSet = New DataSet
cmd.Fill(dsSource, TableGoods)
ExchangeDS(ds, dsSource)
cmd.Dispose()
conn.Close()
End Sub
Public Sub ExchangeDS(ByVal dsDest As DataSet, ByRef dsSource As DataSet)
dsDest = New DataSet
dsSource = New DataSet
Dim dt As DataTable = New DataTable(TableGoods)
dsDest.Tables.Add(TableGoods)
Dim A_Barcode As String
Dim A_Named As String
Dim A_Unit As String
Dim A_Kind As String
Dim A_Price As Double
Dim A_Remark As String
Dim i As Integer
If i <= dt.Rows.Count - 1 Then i = i + 1
A_Barcode = dt.Rows(i)("Barcode").ToString
A_Named = dt.Rows(i)("Named").ToString
A_Unit = dt.Rows(i)("Unit").ToString
A_Kind = dt.Rows(i)("Kind").ToString
A_Price = dt.Rows(i)("Price").ToString
A_Remark = dt.Rows(i)("Remark").ToString
Dim cat As ADOX.Catalog = New ADOX.Catalog()
Dim tbl As New Table
cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=E:\ray\NewMDB.mdb;" & "Jet OLEDB:Engine Type=5")
Console.WriteLine("Database Created Successfully")
tbl.Name = "goods"
Dim Access As String = "INSERT INTO goods (Barcode,Named,Unit,Kind,Price,Remark) VALUES ('" & A_Barcode & "' , '" & A_Named & "' , '" & A_Unit & "' ,'" & A_Kind & "' , " & A_Price & " ,'" & A_Remark & "' )"
Using A_conn As New OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;SERVER=(local);database=Goods;user id=sa;pwd=123456")
'A_conn.Open()
Dim A_com As New OleDbCommand(Access)
A_com.Connection = A_conn
cat.Tables.Append(tbl)
A_com.Dispose()
A_conn.Close()
End Using
End Sub
Protected Function OutToExcel(ByVal dtSource As DataTable, ByVal strSavePath As String) As Boolean
Try
Dim xlApp As New Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim rowIndex, colIndex As Integer
Dim intSheetCnt As Integer = 0 'sheet的个数
Dim intRecordsPerSheet As Integer = 65535 '各个Sheet的记录数
rowIndex = 1
colIndex = 0
xlBook = xlApp.Workbooks().Add
xlSheet = xlBook.Worksheets("sheet1")
Dim Col As DataColumn
Dim row As DataRow
'赋列名
For Each Col In dtSource.Columns
colIndex = colIndex + 1
xlApp.Cells(1, colIndex) = Col.ColumnName
Next
For Each row In dtSource.Rows
rowIndex = rowIndex + 1
colIndex = 0
For Each Col In dtSource.Columns
colIndex = colIndex + 1
xlApp.Cells(rowIndex, colIndex) = row(Col.ColumnName)
Next
With xlSheet '设置格式
.Range(.Cells(1, 1), .Cells(1, colIndex)).Font.Name = "楷体_GB2312" '设置标题为黑体
.Range(.Cells(1, 1), .Cells(1, colIndex)).Font.Bold = True
.Range(.Cells(1, 1), .Cells(rowIndex, colIndex)).Borders.LineStyle = 1
End With
If rowIndex Mod intRecordsPerSheet = 1 Then '当行数超过每个Sheet的设定记录数时,新建一个Sheet
If intSheetCnt = 0 Then
xlSheet.Name = "1 - " + (intRecordsPerSheet).ToString()
End If
xlSheet = xlBook.Worksheets.Add(, xlSheet) '在xlSheet之后增加一个Sheet,再赋给xlSheet
intSheetCnt += 1
xlSheet.Name = (intSheetCnt * intRecordsPerSheet + 1).ToString() + "-" + _
((intSheetCnt + 1) * intRecordsPerSheet).ToString()
rowIndex = 1
colIndex = 0
For Each Col In dtSource.Columns '初始化列名
colIndex = colIndex + 1
xlApp.Cells(1, colIndex) = Col.ColumnName
Next
With xlSheet '设置格式
.Range(.Cells(1, 1), .Cells(1, colIndex)).Font.Name = "楷体_GB2312" '设置标题为黑体
.Range(.Cells(1, 1), .Cells(1, colIndex)).Font.Bold = True
.Range(.Cells(1, 1), .Cells(rowIndex, colIndex)).Borders.LineStyle = 1
End With
End If
Next
'给最后一个Sheet改名
xlSheet.Name = (intSheetCnt * intRecordsPerSheet + 1).ToString() + "-" + _
(intSheetCnt * intRecordsPerSheet + rowIndex).ToString()
xlBook.SaveAs(strSavePath)
xlSheet = Nothing
xlBook.Close()
xlApp.Quit()
xlApp = Nothing
Catch ex As Exception
Throw New Exception("输出到Excel出错:" + ex.Message)
Return False
End Try
Return True
End Function
private void button2_Click(object sender, EventArgs e)
{
//建access库。。。
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\test.mdb;Persist Security Info=True");
string sqlText = @"select * into goods from [ODBC;Driver={SQL Server};Server=.;Database=text;Uid=sa;Pwd=sa].goods";
OleDbCommand cmd = new OleDbCommand(sqlText, conn);
conn.Open();
cmd.ExecuteNonQuery();
cmd.Dispose();
conn.Close();
}
Dim access As String = "insert * into goods from [ODBC;Driver={SQL Server};Server=.;Database=text;Uid=sa;Pwd=123456].goods values ('kk')"
Public Sub ExchangeDS(ByVal dsDest As DataSet, ByRef dsSource As DataSet)
dsDest = New DataSet
Dim dt As DataTable = New DataTable(TableGoods)
'dsSource = New DataSet
Dim conn As New SqlConnection("SERVER=(local);database=text;user id=sa;pwd=123456")
conn.Open()
Dim SQLtxt As String = ""
SQLtxt = "select * from goods"
Dim cmd As New SqlDataAdapter(SQLtxt, conn)
cmd.Fill(dt)
dsDest.Tables.Add(TableGoods)
Dim Barcode As DataColumn = New DataColumn("Barcode", Type.GetType
("System.String"))
Dim Named As DataColumn = New DataColumn("Named", Type.GetType("System.String"))
Dim Unit As DataColumn = New DataColumn("Unit", Type.GetType("System.String"))
Dim Kind As DataColumn = New DataColumn("Kind", Type.GetType("System.String"))
Dim Price As DataColumn = New DataColumn("Price", Type.GetType("System.Double"))
Dim Remark As DataColumn = New DataColumn("Remark", Type.GetType("System.String"))
Dim cat As ADOX.Catalog = New ADOX.Catalog()
Dim tbl As New Table
cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=E:\ray\NewMDB.mdb;" &
"Jet OLEDB:Engine Type=5")
Console.WriteLine("Database Created Successfully")
tbl.Name = "goods"
tbl.Columns.Append(Barcode.ToString)
tbl.Columns.Append(Named.ToString)
tbl.Columns.Append(Unit.ToString)
tbl.Columns.Append(Kind.ToString)
tbl.Columns.Append(Price.ToString)
tbl.Columns.Append(Remark.ToString)
Dim A_Barcode As String = ""
Dim A_Named As String = ""
Dim A_Unit As String = ""
Dim A_Kind As String = ""
Dim A_Price As Double = 0
Dim A_Remark As String = ""
For i = 0 To dt.Rows.Count - 1
A_Barcode = dt.Rows(i)("Barcode").ToString
A_Named = dt.Rows(i)("Named").ToString
A_Unit = dt.Rows(i)("Unit").ToString
A_Kind = dt.Rows(i)("Kind").ToString
A_Price = dt.Rows(i)("Price").ToString
A_Remark = dt.Rows(i)("Remark").ToString
Next i
Dim access As String = "select * into(goods) from [ODBC;Driver={SQL Server};Server=.;Database=text;Uid=sa;Pwd=123456].goods"
Dim A_cnn As String = "provider=Microsoft.Jet.OLEDB.4.0;Data
Source=E:\ray\NewMDB.mdb;Persist Security Info=false"
Dim A_conn As OleDbConnection = New OleDbConnection(A_cnn)
A_conn.Open()
Dim A_com As New OleDbCommand(Access)
A_com.Connection = A_conn
A_com.ExecuteNonQuery()
cat.Tables.Append(tbl)
A_com.Dispose()
A_conn.Close()
End Sub
A_com.ExecuteNonQuery()
报错,说:“select子句包含一个保留字,拼写错误或者丢失的参数,或标点符号不正确,或标点符号不正确”