0

我正在尝试连接到 Microsoft Access 数据库,但我无法使用 c# 进行连接,但无法使用 sql 连接创建登录表单,这也是本地连接

private void button1_Click(object sender, EventArgs e)
{
    SqlConnection conn = new SqlConnection("Data Source ='(local)';Initial Catalog ='UserAccounts.accdb';Integrated Security=true");
    SqlDataReader rdr = null;
    try
    {
        conn.Open();
        MessageBox.Show("Working");
    }
    catch (Exception)
    {
        MessageBox.Show("Error with the databse connection");
    }
    finally
    {
        Console.ReadLine();
        if (rdr != null)
        {
            rdr.Close();
        }
        if (conn != null)
        {
            conn.Close();
        }
    }
}
4

2 回答 2

1

听起来可能很简单,但是您说您想连接到MS Access,但正在使用SqlConnection专门针对 SQL Server 的 ,所以它当然永远不会工作。

对于 MS Access,您可以使用OleDbConnection正确的连接字符串,如下所示:

private void button1_Click(object sender, EventArgs e)
{
    string connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=UserAccounts.accdb; Persist Security Info=False;";
    using(OleDbConnection conn = new OleDbConnection(connectionString))
    {
        try
        {
            conn.Open();
            MessageBox.Show("Working");
        }
        catch (Exception e)
        {
            MessageBox.Show("Error with the database connection\n\n + e.ToString()");
        }
    }
    Console.ReadKey(true);
}

在此处检查最合适的连接字符串

于 2013-07-26T00:26:55.990 回答
0

我认为你的Data Source参数是错误的。通常,就像Data Source=localhost\SQLEXPRESS您的 SQL 实例在本地计算机上被命名为“SQLEXPRESS”一样。查看这些链接:

使用 Windows 身份验证或 SQL 身份验证访问 localhost\SQLEXPRESS 需要使用什么 sql 连接字符串?

http://www.connectionstrings.com/

于 2013-07-26T00:13:22.023 回答