在一个业务项目开发中,用到了C#连接带加密的ACCESS数据库,发现在百度中给出的连接语句大部分都是office2007版以前的access数据库的格式都是.mdb 的,格式模式为:
string connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Application.StartupPath+"\\ExamTest.mdb;
Jet OLEDB:Database Password=1111";
而对于office2007以后的版本.accdb介绍的不多。这里通过C#上的设置直接找到通用做法连接字符串格式为:
string connstr = "Provider=Microsoft.ACE.OLEDB.12.0;;Data Source="+Application.StartupPath+"\\ExamTest.accdb;
Jet OLEDB:Database Password=1111";
做法查找做法:
1)打开C#选择数据源,点击添加新的数据源,选择数据库,点击下一步;
2)选择数据集,点击下一步,选择新建连接;
3)选择好后点击确定,选择制定的数据库文件名,点击浏览找到位置,对于加密的ACCESS数据库需要输入密码,密码为ACCESS的加密密码,点击高级可做进一步设置(默认不需要更改)。
4)点击测试连接,没啥问题的会提示 测试连接成功!
5)到数据源配置向导,选择是,展开字符串信息,拷贝至C#中即可使用。
参考:https://wwwblogs/18553325o9o/p/4676617.html
https://mp.csdn/postedit
在C#中开展相关测试:
// 存放数据库连接字符串和数据库连接对象
public static string M_str_con = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Application.StartupPath + "\\ExamTest.accdb;Persist Security Info=True;Jet OLEDB:Database Password=xiaogong;User Id=admin"; //正确配置方式
public static OleDbConnection My_con; //用来检测是否连接成功
#region 建立access数据库连接
public static string getcon()
{
My_con = new OleDbConnection(M_str_con); //用SqlConnection对象与指定的数据库相连接
try
{
My_con.Open(); //打开数据库连接
}
catch (Exception e)
{
MessageBox.Show("错误信息" + e.ToString());
}
// string i = My_con.State.ToString();
return My_con.State.ToString(); //返回SqlConnection对象的信息
}
#endregion
#region 关闭数据库连接
/// <summary>
/// 关闭于数据库的连接.
/// </summary>
public static void con_close()
{
if (My_con.State.ToString() == "Open") //判断是否打开与数据库的连接
{
My_con.Close(); //关闭数据库的连接
My_con.Dispose(); //释放My_con变量的所有空间
}
}
#endregion
登陆界面:
代码
private void Login_Load(object sender, EventArgs e)
{
textBox1.Text = DBbase.Database.getcon();
}
返回:连接的状态,在一个textbox上显示出来
更多推荐
C#与带密码的access数据库的连接
发布评论