对整个winform应用相同的sql连接字符串

本文关键字:sql 连接 字符串 winform 应用 | 更新日期: 2023-09-27 18:14:31

我想把我的连接字符串应用到整个winform。如果我在这种情况下这样做-它将适用于整个win表单,但我不能使用文本框输入详细信息:

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

如果我将使用文本框,我将需要输入连接字符串到每个方法。

有办法绕过它吗?

对整个winform应用相同的sql连接字符串

您可以采取的另一种方法是在需要时创建SqlConnection,然后在想要保存引用时将其存储在私有变量中。

所以当你需要连接时:

if( myConnection == null )
{
    string connectionString = string.Format( "user id={0}, password={1}", userIdTextBox.Text, passwordTextBox.Text );
  myConnection = new SqlConnection( connectionString );
}

您将扩展"字符串。格式化"以包含其他连接属性

如果你在多个地方需要"myConnection",那么把上面的代码放到一个名为"GetConnection"的方法中,让它使用文本框的内容返回一个SqlConnection实例,并在每次需要连接时调用这个方法。

编辑:

就我个人而言,我会有一个方法来构建连接字符串,就像上面描述的那样,并在需要时创建一个新的SqlConnection实例。这将尝试每次打开一个新连接,但将利用ADO内置的连接池。网络图书馆。
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.
}

您可以创建一个静态类来在其中存储连接字符串。总是创建连接字符串不是一个好的做法。