microsoft access 2010.accdb的SQL连接字符串

本文关键字:SQL 连接 字符串 accdb access 2010 microsoft | 更新日期: 2023-09-27 18:11:18

我正在使用winforms和C#中的access 2010数据库(.accdb(创建一个简单的登录表单。

我有下面的代码,似乎连接字符串是错误的。我试着搜索了一下,发现了。Jet正在访问07??但这似乎也不起作用。我是数据库的业余爱好者(代码来自msdn(。我很难理解我应该在这个例子中使用哪个。

访问表名称:哈哈

ID(PK(|密码-----------------------1|测试
        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);

edited:表的名称是password,我想获得值的字段是ID。

SQL语句,我把它写成:SELECT ID FROM password

是的,表中只有一个字段中只有一条记录作为主键。

无论如何,问题是程序在第一行执行时挂起
-> Keyword not supported: 'provider'.

所以我想我有一个错误的连接字符串。。

microsoft access 2010.accdb的SQL连接字符串

对于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")

编辑:如前所述,访问应该使用OleDbConnection,而不是SqlConnection。。。

通过使用using语句,您可以使用一种更紧凑的方式,并确保连接在任何可能的情况下都是关闭和处理的,即使在抛出异常的情况下也是如此:

您的查询文本也可能是错误的,正如其他人所建议的那样。。。

using (var conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:'BC207'test.accdb"))
using (var comm = conn.CreateCommand())
{
    comm.CommandText = "SELECT password FROM HAHA";
    comm.CommandType = CommandType.Text;
    conn.Open();
    var returnValue = comm.ExecuteScalar();
    MessageBox.Show(returnValue.ToString());
}

编辑:您确定表HAHA只包含一行吗?因为ExecuteScalar只返回一个值,所以如果要从多个记录中获取1列,则可以使用DataReader或DataSet。。。

comm.CommandText = "SELECT HAHA(*) FROM password";

这是错误的。

"从HAHA选择密码">

您的SQL语句应该是

SELECT * from HAHA

 SELECT [Password] From HAHA

编辑:

您应该更改ConnectionString。