ADO.NET 連接Access2007和Access2003

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

 

 

 

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章