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>
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="";";
2:若还发生其他的错误导致连接不上Access数据库,可尝试将编译器的平台目标设置为X64。