如何在C#中分离连接字符串并从类中获取连接字符串

时间:2012-09-04 02:40:24

标签: c# sql

我是C#的新手。我想问一下,如何将连接字符串配置分成一个类?

因为每次我想编写代码时,我都需要重新编写连接字符串并测试连接。所以,我需要创建一个类,以便每次与数据库建立连接时,此类将首先测试连接。然后在它工作之后,该类将将连接字符串发送到我的编码。 此外,如果我想更改我的源数据,我只需更改课程。无需搜索我的所有编码

因此,如果我可以创建一个类,我如何调用并从类中获取连接字符串?

可以这样吗?

这是我目前在C#

中编写连接字符串的代码
FileInfo file = new FileInfo(Application.StartupPath + "\\conn.txt");

if (file.Exists)
{
    StreamReader r = File.OpenText(Application.StartupPath + "\\conn.txt");
    connString = r.ReadToEnd();
    r.Close();

    // Open SQL connection
    SqlConnection openCon = new SqlConnection(connString);

    try
    {
        Cursor = Cursors.WaitCursor;
        openCon.Open();
    }
    catch
    {
        MessageBox.Show("Error to established connection\nPlease check Data Source");
        openCon.Close();
        Cursor = Cursors.Arrow;
    }
    else
    {
        MessageBox.Show("File config is missing");
    }
}

希望你能教我作为C#的新手。谢谢您的帮助。抱歉英语不好。

5 个答案:

答案 0 :(得分:1)

您应该在配置文件中存储连接字符串。如果您没有配置文件,请通过右键单击项目并添加新项目来添加一个...'如果您正在编写Web应用程序,它将是web.config文件;如果您正在编写客户端应用程序,则它将是app.config文件。

将连接字符串添加到connectionStrings节点中的配置文件中,通常位于文件顶部。

<?xml version="1.0" encoding="utf-8"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->
<configuration>
  <connectionStrings>
    <!-- add a string -->
    <add name="MyConnectionString" 
         connectionString="Data Source=localhost; ... // etc 
         providerName="System.Data.SqlClient" />
  </connectionStrings>
  // and keep all the other configuration in the file

然后您只需使用ConfigurationManager课程参考配置文件 - 如果您还没有系统配置,则需要添加对System.Configuration的引用。

ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;

答案 1 :(得分:0)

你正试图在这里重新发明轮子。 .Net框架已经包含一些处理这个的简单技术。如果您正在创建Windows表单项目,则可以使用App.Config属性将连接字符串存储在connectionString中。如果这是一个网络应用,那么您将其存储在web.config中,以下是它的样子:

<connectionStrings>
      <add name="Prod" connectionString="Server=myServer;Database=DB1;user=sa;password=myPassword;Trusted_Connection=false" providerName="SQL" />
  </connectionStrings>

然后,在您的代码中,您将从web.config中读取连接字符串,如下所示:

string connString = System.Configuration.ConfigurationManager.
    ConnectionStrings["Prod"].ConnectionString;

你在这里问一个非常基本的问题,它表明你正在试图欺骗你学习c#的方式。我给你的建议是拿一本好的C#书,然后通过它来掩盖,以正确的方式学习东西。

答案 2 :(得分:0)

不要将连接字符串放入单独的文件中,而是将其存储在app.config或web.config文件中。 .NET配置文件包含一个允许您存储连接字符串的部分:

<connectionStrings>
    <add name="myConnectionString" connectionString="server=localhost;database=myDb;uid=myUser;password=myPass;" />
</connectionStrings>

您可以使用以下代码检索此连接字符串:

string connStr = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString; 

答案 3 :(得分:0)

我认为海报的问题非常有效。虽然我们可以在Web.config或app.config中编写一次连接字符串并在整个项目中使用它,但是使用这种技术有一个缺点。 web.config或app.config中的连接字符串永远不会安全。这两个文件最终都像文本文件。有办法从他们那里获取密码。安全可能会被打破。因此,最好在单独的类文件中使用连接字符串,并在整个项目中获取它。

答案 4 :(得分:0)

您可以创建一个返回sqlConnection的类...

public class DBConn
{
    private string ConnectionString = "123456789Connection";

    public SqlConnection getSqlConn()
    {
        return SqlConnection();
    }
}