连接到 app.config 中的 connectionString

Connecting to connectionString in app.config

我的连接字符串存储在 App.Config

<connectionStrings>
 <clear />
 <add name="CTaC_Information_System.Properties.Settings.CIS_beConn"
     connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=&quot;\server\file\CIS Data\Database\CIS_be.accdb&quote;;Jet OLEDB:Database Password=123" 
     providerName="System.Data.OleDb" />

然后,当我转到 main.xaml.cs 时,我输入以下内容:

string cisconn = ConfigurationManager.ConnectionStrings["CTaC_Information_System.Properties.Settings.CIS_beConn"].ConnectionString;`

我在搜索时在 Stack Overflow 上找到了这个答案,但有些人说要输入 var 但是当我输入 var 时它无法识别它所以我选择了 string 方法。

当我输入 cisconn.Open(); 时,选项不存在。我引用的是 System.Configuartion;System.Data.Sql; System.Data.SqlClient;System.Data.OleDb;.

谁能告诉我如何从 C# 连接到数据库?我正在尝试在我的应用程序运行时测试连接,但我无法弄清楚。

连接字符串只是一个字符串,它意味着在您的连接中使用,所以您应该这样做:

public void DoSomeDatabaseOp()
{
    string cisconn = ConfigurationManager.ConnectionStrings["CTaC_Information_System.Properties.Settings.CIS_beConn"].ConnectionString;

    using (OleDbConnection conn = new OleDbConnection(cisconn))
    {
        conn.Open();
        //Create your commands or do your SQL here.
    }
}

您应该 create/destroy 您正在使用它的方法内部的连接。不要在 class 对象的根目录中保留对它的引用。如果您不进行数据库操作,这可以保持连接清洁和打开。

如果你真的想要,你可以这样做:

class MyClass
{
    OleDbConnection _rootConn;
    string _connStr;

    public MyClass()
    {
        _connStr = string cisconn = ConfigurationManager.ConnectionStrings["CTaC_Information_System.Properties.Settings.CIS_beConn"].ConnectionString;
        _rootConn = new OleDbConnection(_connStr);
    }

    public void DoSomeDatabaseOp()
    {
        //Use _rootConn here
    }
}

但是 class 应该实现 IDisposable 以便它可以正确处理连接! 如何实现 IDisposable 超出了答案的范围,但请查阅如何正确实施。