C#和VB.NET连接Access

一、直接通过软件连接Access表

1:新建一个windowsForm工程。

 

access调用vb函数慢_数据

2:打开"检视\伺服器总管\资料连接"后,右击"资料连接"后打开"连接资料连接",选择正确的资料来源与资料库档名,若有密码请输入正确的密码,如无,则不输入。

access调用vb函数慢_数据库_02

3:点击"测试连接"后,显示连接成功。

access调用vb函数慢_access调用vb函数慢_03

4:添加一个DataGridView控件,点击Data Source属性,选择"Add Project Data Source",然后找到添加的Access表"Administrator"。如下图所示:

access调用vb函数慢_控件_04

5:点击调试,及显示其表"Administrator"的全部。

access调用vb函数慢_数据_05

 

二、C#连接Access数据库文件

1:通过OLEDB的Connection来连接数据库文件,具体代码如下:

///<summary>
///连接数据库文件
///</summary>
///<param name="intFlag">连接标志位(0:普通方式打开;1:以独占方式打开)</param>
///<param name="path">数据库文件的路径</param>
///<returns>OleDbConnection</returns>
privatestaticOleDbConnectionintstring path) 
 { 
stringnull;//数据库文件路径
stringnull;//打开数据库语句
//普通方式打开
if (intFlag == 0) 
 { 
//strFilePath = Application.StartupPath + @"\db\Database.mdb";
 strFilePath = path; 
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="";"; 
 } 
//以独占方式打开
if (intFlag == 1) 
 { 
Application.StartupPath + @"\db\Database_1.mdb"; 
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="";" + 
"Jet OLEDB:Database Password=123;"; 
 } 
OleDbConnectionnewOleDbConnection(strConn); 
return oleConn; 
 }
2:成功连接数据库文件后,需要读取里面的内容并显示出来,其代码如下:
///<summary>
///查看数据库文件并填充
///</summary>
///<param name="intFlag">填充标志位(0:DataGridView控件;1:ListView控件)</param>
///<param name="path">数据库文件路径</param>
///<param name="obj">填充控件</param>
publicvoidintstringobject obj) 
 { 
OleDbConnection oleConn = getConnection(intFlag, path); 
ifConnectionState.Open)//判断数据库是否关闭
 { 
 oleConn.Close(); 
 } 
 oleConn.Open(); 
string"select * from Administrator";//查询语句(此句表示返回整张表)
if (intFlag == 0) 
 { 
DataGridViewDataGridView)obj; //拆箱操作
OleDbDataAdapternewOleDbDataAdapter(strSelect, oleConn);//建立适配器,通过SQL语句去搜索数据库
DataSetnewDataSet(); 
//建立数据集
"0"); 
DataTable"0"]; 
//把表dt显示到DataGridView控件上
 } 
if (intFlag == 1) 
 { 
ListViewListView)obj; 
OleDbCommandnewOleDbCommand(strSelect, oleConn);//执行的预存式
OleDbDataReader//执行查询语句,并读取相应的数据
string[] str = newstring[oleRed.FieldCount]; 
//清除列名
//清除表格内容
//添加列名
forint//获取列名
 { 
 lv.Columns.Add(oleRed.GetName(i)); 
 } 
while (oleRed.Read()) 
 { 
ListViewItemnewListViewItem(oleRed[0].ToString());//从第1行开始添加
 
forint i = 1; i < oleRed.FieldCount; i++) 
 { 
//添加剩余行
 
 } 
//添加到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>
PublicFunctionByValAsString, ByValAsObject, OptionalByValAsIntegerOptionalByValAsStringNothing) AsBoolean
DimAsBooleanFalse
Try
'连接数据库
DimAsOleDbConnection = getConnection(filepath) 
IfConnectionState.Open) Then
 oleCon.Close() 
EndIf
 oleCon.Open() 
'查询语句
DimAsString"select * form Administrator"
'以DataGridView填充
IfThen
DimAsDataGridView = obj 
'执行语句
DimAsOleDbDataAdapterNewOleDbDataAdapter(strSelect, oleCon) 
'声明连接池
DimAsDataSetNewDataSet() 
'填充数据集
"0") 
'填充到表dt中
DimAsDataTable"0") 
'填充控件
 dgv.DataSource = dt 
EndIf
'以listview填充
IfThen
DimAsListView = obj 
'执行语句
DimAsOleDbCommandNewOleDbCommand(strSelect, oleCon) 
'读取语句
DimAsOleDbDataReader = oleCmd.ExecuteReader() 
'清除控件内容
 lv.Columns.Clear() 
 lv.Items.Clear() 
'添加字段名
ForTo oleRed.VisibleFieldCount - 1 
 lv.Columns.Add(oleRed.GetName(i)) 
Next
'添加数据表内容
While (oleRed.Read()) 
DimAsListViewItemNewListViewItem(oleRed(0).ToString()) 
ForTo oleRed.FieldCount - 1 
 item.SubItems.Add(oleRed(i).ToString()) 
Next
 lv.Items.Add(item) 
EndWhile
EndIf
True
CatchAsException
False
EndTry
Return bolReturn 
EndFunction

四、常见原因

1:若发生"找不到可安装的ISAM"错误,一般来说是把数据库的连接语句书写错误。正确语句为:String strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="";";

 

access调用vb函数慢_access调用vb函数慢_06

2:若还发生其他的错误导致连接不上Access数据库,可尝试将编译器的平台目标设置为X64。

access调用vb函数慢_access调用vb函数慢_07