2010-11-18 82 views
3

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

这里是我的代码示例,运行后按钮连接到数据库onclick。

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(); 
      } 
     } 
+0

FYI这是不好的做法,包括在表示层逻辑的代码,可以考虑重构,使您的数据层是单独的类您可以从演示文稿(UI)层调用。 – Darbio 2010-11-18 05:39:35

+0

可以请你帮我一个小例子,如果你显示使用我的代码 – Ishan 2010-11-18 06:26:58

+0

看看这个问题对于一些初学者会很好:http://stackoverflow.com/questions/304828/where-can-i-找到清晰-例子-的-MVC – Darbio 2010-11-21 06:59:22

回答

3

如果您知道连接字符串名称可以使用ConfigurationManager

如的财产的ConnectionStrings

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

在哪里,你的web.config将包含一个名为ConnectionStringName

3

这里的ConnectionString是创建和加入的connectionString到Web.config为SQL Server 您可以更改SQL连接到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"); 

希望这将在web配置来使用全

1

<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(); 
0

在这一切的答案static缺少

导入这个命名空间:

using System.Configuration; 

获取连接字符串:

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

web配置

<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); 
相关问题