1、連接access2007
using System;
using System.Data.OleDb;
class AccessTest{
static void Main(){
string strConnection = "Provider=MicroSoft.ACE.OLEDB.12.0;";
strConnection += @"Data Source=D:\study\work\db\ITalkUsers.accdb;Persist Security Info=False";
OleDbConnection connection = new OleDbConnection(strConnection);
OleDbCommand cmd = new OleDbCommand("select userid, username, userpasswd from users", connection);
connection.Open();
OleDbDataReader cusReader = cmd.ExecuteReader();
Console.WriteLine("{0} Field.", cusReader.FieldCount);
while(cusReader.Read()){
Console.WriteLine(cusReader.GetInt32(0) + " " + cusReader.GetString(1) + " " + cusReader.GetString(2));
}
cusReader.Close();
connection.Close();
}
2、連接access2003
ADO.NET連接ACCESS數據庫
Imports System.Data.OleDb ——引用命名空間。
1. OleDbConnection 類(連接),所有對數據庫的操作都必需先與數據庫連接
用法例1:
Dim _connection As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\mymoney.mdb")
數據庫有密碼則在連接字符串改爲:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\mymoney.mdb;Jet OLEDB:Database Password=12345a
用法例2:
Dim _connection As OleDbConnection = New System.Data.OleDb.OleDbConnection
_connection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\shidata.mdb;Jet OLEDB:Database Password=12345a"
_connection的其它屬性可以使用其默認值
打開連接:
_connection.Open()'打開連接
爲了減少錯誤,可以用下面的方法打開:
If _connection.State = ConnectionState.Closed Then _connection.Open()'如果是關閉則打開
同樣關閉連接時也可以做一個判斷
2. OleDbCommand 類(操作數據庫)
Dim _OleDbCommand As OleDbCommand = New OleDbCommand("SQL語句", 數據連接)
例:
Dim _OleDbCommand As System.Data.OleDb.OleDbCommand
_OleDbCommand = New System.Data.OleDb.OleDbCommand()
_OleDbCommand.CommandText = "SQL語句"
_OleDbCommand.Connection = _connection
_OleDbCommand.ExecuteNonQuery() '執行SQL語句,返回受影響的行數
_OleDbCommand.ExecuteScalar() '執行SQL語句,返回單個值(結果結果集中第一行第一列的值)
_OleDbCommand.ExecuteReader() '執行SQL語句,返回行,可使用其循環方問行集.此方法的更多內容可參看MSDN.
用數據適配器(OleDbDataAdapter)及數據集(DataSet)方法例(個人理財彙總模塊):
Module 彙總
Function pd(ByVal kk As String) As String '爲空則賦值爲0
If kk = "" Then
Return 0
Else
Return kk
End If
End Function
Sub huizong()
Dim OleDbConn As OleDbConnection = New OleDbConnection(My.MySettings.Default.mymoneyConnectionString) 'My.MySettings.Default.mymoneyConnectionString 是在程序配製文件中記錄的連接字符串
OleDbConn.Open()
Dim mydataset As DataSet = New DataSet
Dim MyOleDataAdapter As OleDbDataAdapter = New OleDbDataAdapter()
MyOleDataAdapter.SelectCommand = New OleDbCommand("SELECT SUM(支出金額) AS ZONGHE FROM 支出信息表", OleDbConn)
MyOleDataAdapter.Fill(mydataset)
MyOleDataAdapter.SelectCommand = New OleDbCommand("SELECT SUM(收入金額) AS ZONGHEE FROM 收入信息表", OleDbConn)
MyOleDataAdapter.Fill(mydataset)
MyOleDataAdapter.SelectCommand = New OleDbCommand("SELECT SUM(支出金額) AS Expr2 FROM 支出信息表 WHERE (datediff('M', 支出日期, NOW()) = 0)", OleDbConn)
MyOleDataAdapter.Fill(mydataset)
MyOleDataAdapter.SelectCommand = New OleDbCommand("SELECT SUM(收入金額) AS Expr1 FROM 收入信息表 WHERE (datediff('M', 收入日期, NOW()) = 0)", OleDbConn)
MyOleDataAdapter.Fill(mydataset)
zhu_form.Label2.Text = pd(mydataset.Tables(0).Rows(0).Item("ZONGHE").ToString())
zhu_form.Label5.Text = pd(mydataset.Tables(0).Rows(1).Item("ZONGHEE").ToString())
zhu_form.Label9.Text = pd(mydataset.Tables(0).Rows(2).Item("Expr2").ToString())
zhu_form.Label8.Text = pd(mydataset.Tables(0).Rows(3).Item("Expr1").ToString())
zhu_form.Label12.Text = (pd(mydataset.Tables(0).Rows(2).Item("Expr2").ToString()) / Date.Today.Day).ToString(".##") '留兩位小數
zhu_form.Label13.Text = (pd(mydataset.Tables(0).Rows(2).Item("Expr2").ToString()) / Date.Today.Day * Date.DaysInMonth(Now.Year, Now.Month)).ToString(".##")
MyOleDataAdapter.Dispose()
OleDbConn.Dispose()
End Sub
}