【问题标题】:Taking the connection string value from textbox从文本框中获取连接字符串值
【发布时间】:2010-12-10 09:12:26
【问题描述】:

在一个类中,我已经定义了这样的连接字符串

  SqlConnectionStringBuilder objConnectionString = new SqlConnectionStringBuilder();
            objConnectionString.DataSource = localServer; ;
            objConnectionString.UserID = userName;
            objConnectionString.Password = password;
            objConnectionString.InitialCatalog = selectedDatabase;

where local server = txtHost;--DataSource 用户名 = txt用户名; 密码 = txtPassword;

但在我的另一个项目中,我想访问该项目的控件

目前我像这样连接到数据库

  using(var sConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]))

但我想让它直接从另一个项目中使用的文本框中获取值

等待您的建议.....可以做到吗..

【问题讨论】:

    标签: sql winforms connection-string database-connection


    【解决方案1】:

    除非您将实际控件传递给其他项目中的方法,否则您将无法做到这一点。

    为什么不将您事先设置的SqlConnectionStringBuilder 对象传递给被调用的方法?

    【讨论】:

      【解决方案2】:

      在带有文本框的表单中,您需要创建属性以访问表单中的值,例如

      public string Server 
      {
         get
         {
            return this.txtHost.Text;
         }
      }
      

      您还需要通过引用该项目或使用两者之间的共享接口将表单的引用传递给您的其他项目。

      在您要构建连接字符串的项目中,您将需要某种方式来接收对表单的引用,例如

      public void RunMyQuery(MyForm form)
      {
         var objConnectionString = new SqlConnectionStringBuilder();
         objConnectionString.DataSource = form.Server; 
      }
      

      如果你有时间,可以考虑创建一个包含共享接口的新项目,这样你就可以创建一个接口,例如

      public interface IConnectionStringPartProvider
      {
         string Server { get; }
         ... other parts
      }
      

      在你的表单上实现这个接口

      public partial class Form1 : Form, IConnectionStringPartProvider
      

      那么你不需要在你的逻辑类中引用你的表单项目,只需让两个项目都引用共享项目。

      这样,您的查询方法可以替换为

      public void RunMyQuery(IConnectionStringPartProvider provider)
      {
         var objConnectionString = new SqlConnectionStringBuilder();
         objConnectionString.DataSource = provider.Server; 
      }
      

      【讨论】:

        猜你喜欢
        • 2014-03-10
        • 2012-05-28
        • 2015-01-10
        • 2017-09-22
        • 2020-01-13
        • 2021-03-10
        • 2015-04-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多