【问题标题】:How to add and access connection string from web.config如何从 web.config 添加和访问连接字符串
【发布时间】:2011-05-11 20:17:22
【问题描述】:

我想添加连接字符串以连接到 web.config 文件中定义的 mysql 并在我的 C# 代码中访问相同的连接我该怎么做?

这是我在单击按钮以连接到数据库后运行的代码示例。

protected void Button2_Click(object sender, EventArgs e)
    {
        String a = DropDownList1.SelectedItem.Value;
        String b = DropDownList3.SelectedItem.Value.PadLeft(3, '0');      
        String c = TextBox2.Text.PadLeft(5,'0').ToString();
        String d = TextBox3.Text.ToString();
        String digit = a+ b  + c + d;
        try
        {
         myConn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=testcase;User=root;Password=root;Option=3;");
         myConn.Open();
            //**
            string sql = "select * from testcase.main where reg_no =?";            
            //**
            OdbcCommand cmd = new OdbcCommand(sql, myConn);            
            //**
            cmd.Parameters.AddWithValue("?", digit);
            MyReader = cmd.ExecuteReader();
            //**
            while (MyReader.Read())
            {
                String f = MyReader["pet_name"].ToString();
                String g = MyReader["res_name"].ToString();

                Label9.Visible = true;
                Label9.Text = f;

                Label10.Visible = true;
                Label10.Text = "VS";

                //Label11.Visible = true;
                Label11.Text = g;

            }

            MyReader.Close();
        }
        catch (Exception e1)
        {
            Response.Write(e1.ToString());
        }
        finally
        {
            if (MyReader != null && !MyReader.IsClosed)
            {
                MyReader.Close();   
            }

            if (myConn != null && myConn.State == ConnectionState.Open)
            {
                myConn.Close();
            }
        }

【问题讨论】:

  • 仅供参考,将此代码包含在您的表示层逻辑中是不好的做法,请考虑重构,以便您的数据层位于可以从表示 (UI) 层调用的单独类中。
  • 你能帮我举个小例子吗,如果你用我的代码展示会很棒
  • 先看看这个问题:stackoverflow.com/questions/304828/…

标签: c# asp.net mysql visual-studio web-config


【解决方案1】:

如果您知道连接字符串名称,则可以使用 ConfigurationManager 类的 ConnectionStrings 属性

例如

using System.Configuration;
string ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionStringName"].ConnectionString.ToString();

其中,您的 web.config 将包含一个名为 ConnectionStringName 的连接字符串

【讨论】:

    【解决方案2】:

    这里是为 SQL Server 创建连接字符串并将其添加到 web.config 的示例 您可以将 sql Connection 更改为 OleDb 连接

    SqlConnectionStringBuilder connectionStringBuilder = new SqlConnectionStringBuilder();
            connectionStringBuilder.DataSource = "localhost";
            connectionStringBuilder.IntegratedSecurity = true;
            connectionStringBuilder.InitialCatalog = "SampleDB";
    
            ConnectionStringSettings connSttng = new ConnectionStringSettings();
            connSttng.Name = "ConnectionStringName";
            connSttng.ProviderName = "Providername";
            connSttng.ConnectionString = String.Format("DataSource={0};InitialCatalog={1};IntegratedSecurity={2}", connectionStringBuilder.DataSource, connectionStringBuilder.InitialCatalog, connectionStringBuilder.IntegratedSecurity);
    
            Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
            config.ConnectionStrings.ConnectionStrings.Add(connSttng);
            config.Save(ConfigurationSaveMode.Modified, true);
            ConfigurationManager.RefreshSection("connectionStrings");
    

    希望这将是完整的

    【讨论】:

      【解决方案3】:

      在网络配置中:

      <connectionStrings>
      <add 
          name="NorthwindConnectionString"
          connectionString="Data Source=serverName;Initial 
          Catalog=Northwind;Persist Security Info=True;User
          ID=userName;Password=password"
          providerName="System.Data.SqlClient"/>
       </connectionStrings>
      

      在视图中:

      using System.Configuration;
      string ConnectionString =ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString.ToString();
      

      【讨论】:

        【解决方案4】:

        在所有这些答案中static 缺失

        导入这个命名空间:

        using System.Configuration;
        

        获取连接字符串:

        static string ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionStringName"].ConnectionString.ToString();
        

        【讨论】:

          【解决方案5】:

          网络配置

          <connectionStrings>   
               <add name="cn"connectionString="server=localhost;database=database_name;uid=username;password=your password"/> 
          </connectionStrings>
          

          aspx 页面

          string constr=ConfigurationManager.ConnectionStrings["cn"].ConnectionString;
          MySqlConnection con = new MySqlConnection(constr);
          MySqlCommand cmd =new MySqlCommand("select * from  tbl_mastercampaign", con);
          

          【讨论】:

            猜你喜欢
            • 2018-03-10
            • 2012-05-31
            • 1970-01-01
            • 2013-06-25
            • 1970-01-01
            • 2011-09-02
            • 1970-01-01
            • 2011-07-10
            • 2010-12-14
            相关资源
            最近更新 更多