C#與VB.NET連接Access數據庫文件


C#和VB.NET連接Access

一、直接通過軟件連接Access表

1:新建一個windowsForm工程。

 

2:打開"檢視\伺服器總管\資料連接"后,右擊"資料連接"后打開"連接資料連接",選擇正確的資料來源與資料庫檔名,若有密碼請輸入正確的密碼,如無,則不輸入。

3:點擊"測試連接"后,顯示連接成功。

4:添加一個DataGridView控件,點擊Data Source屬性,選擇"Add Project Data Source",然后找到添加的Access表"Administrator"。如下圖所示:

5:點擊調試,及顯示其表"Administrator"的全部。

 

二、C#連接Access數據庫文件

1:通過OLEDB的Connection來連接數據庫文件,具體代碼如下:

/// <summary>

///連接數據庫文件

/// </summary>

/// <param name="intFlag">連接標志位(0:普通方式打開;1:以獨占方式打開)</param>

/// <param name="path">數據庫文件的路徑</param>

/// <returns>OleDbConnection</returns>

private static OleDbConnection getConnection(int intFlag,string path)

{

string strFilePath = null;//數據庫文件路徑

string strConn = null;//打開數據庫語句

//普通方式打開

if (intFlag == 0)

{

//strFilePath = Application.StartupPath + @"\db\Database.mdb";

strFilePath = path;

strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strFilePath + ";";

}

//以獨占方式打開

if (intFlag == 1)

{

strFilePath = Application.StartupPath + @"\db\Database_1.mdb";

strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strFilePath + ";" +

"Jet OLEDB:Database Password=123;";

}

OleDbConnection oleConn = new OleDbConnection(strConn);

return oleConn;

}

2:成功連接數據庫文件后,需要讀取里面的內容並顯示出來,其代碼如下:

/// <summary>

///查看數據庫文件並填充

/// </summary>

/// <param name="intFlag">填充標志位(0:DataGridView控件;1:ListView控件)</param>

/// <param name="path">數據庫文件路徑</param>

/// <param name="obj">填充控件</param>

public void DataFille(int intFlag,string path ,object obj)

{

OleDbConnection oleConn = getConnection(intFlag, path);

if (oleConn.State == ConnectionState.Open)//判斷數據庫是否關閉

{

oleConn.Close();

}

oleConn.Open();

string strSelect = "select * from Administrator";//查詢語句(此句表示返回整張表)

if (intFlag == 0)

{

DataGridView dv = (DataGridView)obj; //拆箱操作

OleDbDataAdapter da = new OleDbDataAdapter(strSelect, oleConn);//建立適配器,通過SQL語句去搜索數據庫

DataSet ds = new DataSet();

//建立數據集

da.Fill(ds, "0");

DataTable dt = ds.Tables["0"];

dv.DataSource = dt;//把表dt顯示到DataGridView控件上

}

if (intFlag == 1)

{

ListView lv = (ListView)obj;

OleDbCommand oleCmd = new OleDbCommand(strSelect, oleConn);//執行的預存式

OleDbDataReader oleRed = oleCmd.ExecuteReader();//執行查詢語句,並讀取相應的數據

string[] str = new string[oleRed.FieldCount];

lv.Columns.Clear();//清除列名

lv.Items.Clear();//清除表格內容

//添加列名

for (int i = 0; i < oleRed.VisibleFieldCount; i++)//獲取列名

{

lv.Columns.Add(oleRed.GetName(i));

}

while (oleRed.Read())

{

ListViewItem item = new ListViewItem(oleRed[0].ToString());//從第1行開始添加

 

for (int i = 1; i < oleRed.FieldCount; i++)

{

item.SubItems.Add(oleRed[i].ToString());//添加剩余行

 

}

lv.Items.Add(item);//添加到listview控件上

}

}

 

三、VB.NET連接Access數據庫文件

''' <summary>

''' 查看數據庫

''' </summary>

''' <param name="filepath">數據庫文件的路徑</param>

''' <param name="obj">填充控件內容</param>

''' <param name="flag">填充標志位(0:DataGridView控件;1:listview控件)</param>

''' <param name="password">數據庫文件密碼</param>

''' <returns>flase:打開失敗;true:打開成功</returns>

''' <remarks></remarks>

Public Function DataFille(ByVal filepath As String, ByVal obj As Object, Optional ByVal flag As Integer = 0, Optional ByVal password As String = Nothing) As Boolean

Dim bolReturn As Boolean = False

Try

'連接數據庫

Dim oleCon As OleDbConnection = getConnection(filepath)

If (oleCon.State = ConnectionState.Open) Then

oleCon.Close()

End If

oleCon.Open()

'查詢語句

Dim strSelect As String = "select * form Administrator"

'DataGridView填充

If flag = 0 Then

Dim dgv As DataGridView = obj

'執行語句

Dim da As OleDbDataAdapter = New OleDbDataAdapter(strSelect, oleCon)

'聲明連接池

Dim ds As DataSet = New DataSet()

'填充數據集

da.Fill(ds, "0")

'填充到表dt

Dim dt As DataTable = ds.Tables("0")

'填充控件

dgv.DataSource = dt

End If

'listview填充

If flag = 1 Then

Dim lv As ListView = obj

'執行語句

Dim oleCmd As OleDbCommand = New OleDbCommand(strSelect, oleCon)

'讀取語句

Dim oleRed As OleDbDataReader = oleCmd.ExecuteReader()

'清除控件內容

lv.Columns.Clear()

lv.Items.Clear()

'添加字段名

For i = 0 To oleRed.VisibleFieldCount - 1

lv.Columns.Add(oleRed.GetName(i))

Next

'添加數據表內容

While (oleRed.Read())

Dim item As ListViewItem = New ListViewItem(oleRed(0).ToString())

For i = 0 To oleRed.FieldCount - 1

item.SubItems.Add(oleRed(i).ToString())

Next

lv.Items.Add(item)

End While

End If

bolReturn = True

Catch ex As Exception

bolReturn = False

End Try

Return bolReturn

End Function

四、常見原因

1:若發生"找不到可安裝的ISAM"錯誤,一般來說是把數據庫的連接語句書寫錯誤。正確語句為:String strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strFilePath + ";";

 

2:若還發生其他的錯誤導致連接不上Access數據庫,可嘗試將編譯器的平台目標設置為X64。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM