在app.config中连接到connectionString

时间:2015-04-30 03:27:38

标签: c# sql wpf ms-access database-connection

我的连接字符串存储在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时它不会识别它,所以我选择了{{1} } 方法。

当我输入string时,选项不在那里。我引用了cisconn.Open();System.Configuartion; System.Data.Sql;System.Data.SqlClient;

有人可以显示/告诉我如何从c#连接到数据库吗?我在应用程序运行时尝试测试连接,但我无法弄明白。

1 个答案:

答案 0 :(得分:0)

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

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.
    }
}

您应该在使用它的方法内创建/销毁连接。不要在类对象的根目录中保留对它的引用。如果您没有进行数据库操作,这可以保持连接的清洁和开放。

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

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
    }
}

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