我正在使用
winforms进行简单的登录表单并在C#中访问2010数据库(.accdb).
我有以下代码,似乎连接字符串是错误的.我试过搜索,发现.Jet是用于访问07 ??但这似乎也没有用.
我是数据库的业余爱好者(代码来自msdn).我无法理解我应该在这个例子中使用哪个.
访问表名称:哈哈
ID (PK) | password ----------------------- 1 | testing
System.Data.sqlClient.sqlConnection conn = new System.Data.sqlClient.sqlConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\BC207\test.accdb"); System.Data.sqlClient.sqlCommand comm = new System.Data.sqlClient.sqlCommand(); comm.CommandText = "SELECT HAHA(*) FROM password"; comm.CommandType = CommandType.Text; comm.Connection = conn; conn.Open(); Object returnValue = comm.ExecuteScalar(); conn.Close(); MessageBox.Show((string)returnValue);
sql语句我把它写成:SELECT ID FROM password
是的,表中只有一个记录中只有一个记录作为主键.
无论如何,问题是程序在第一行执行时挂起
– >不支持关键字:’provider’.
所以我想我有一个错误的连接字符串..
解决方法
对于Acces数据库(.mdb,.accdb等…),您希望使用
OleDbConnection,而不是sqlConnection(sql Server),如下所示:
conn = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\BC207\test.accdb")