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'.
所以我想我有一个错误的连接字符串。。
对于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。