2010-12-10 28 views
0

在一类我已经定义的连接字符串这样以从文本框中的连接字符串值

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

其中本地服务器= txtHost; - 数据源 的userName = txtUsername; password = txtPassword;

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

目前我有这样的

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

数据库连接的控制,但我想让它这样,它将采取的直接从另一个项目

等待您的建议.....这是可以做到使用文本框的值..

回答

0

你不会BNE abble做这个,除非你将实际的控制权交给另一个项目中的方法。

为什么不宁愿将您设置的SqlConnectionStringBuilder对象先前设置为要调用的方法?

0

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

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; 
} 
被替换