我想将我的连接字符串应用于整个winform。如果我在这种情况下这样做 - 它将适用于整个胜利形式,但是我不能使用文本框输入细节:
public partial class Form1 : Form
{
SqlConnection myConnection = new SqlConnection("user id=userName;" +
"password=userPass;" +
"server=.;" +
"Trusted_Connection=yes;" +
"database=dbName; " +
"MultipleActiveResultSets=True;" +
"connection timeout=30");
public Form1()
{
InitializeComponent();
}
如果我将使用文本框,我将需要输入每个方法的连接字符串。
无论如何都要绕过它?
答案 0 :(得分:1)
您可以采取的另一种方法是在需要时创建SqlConnection,如果要保存引用,则存储在私有变量中。
所以当你需要连接时:
if( myConnection == null )
{
string connectionString = string.Format( "user id={0}, password={1}", userIdTextBox.Text, passwordTextBox.Text );
myConnection = new SqlConnection( connectionString );
}
您将扩展“string.Format”以包含其他连接属性。
如果在多个位置需要“myConnection”,则将上述代码放入名为“GetConnection”的方法中,让它使用文本框的内容返回SqlConnection实例,并在每次需要连接时调用此方法。 / p>
编辑:
就个人而言,我会有一个构建连接字符串的方法,如上所述,并在需要时创建一个新的SqlConnection实例。这将尝试每次都打开一个新连接,但会使用ADO.NET库中内置的连接池。
using( SqlConnection connection = new SqlConnection( this.GetConnectionString() ) )
{
// Open Connection
// Access the database
// Close the connection <- Manual closing MAY not be needed as it might be done in Dispose ...check MSDN for clarification.
}
答案 1 :(得分:0)
您可以创建一个静态类来存储连接字符串。始终创建连接字符串并不是一个好习惯。