C#我可以公开sqlConnection并从其他表单中引用它吗?

时间:2011-03-24 14:13:22

标签: c# public sqlconnection

我的第一个表单上有一个sqlConnection,并想知道我是否可以公开它,所以我可以从其他表单中引用它。我到目前为止的代码如下,但我不知道在哪里公开或如何公开。

public partial class frmConnect : Form
{

    public frmConnect()
    {
        InitializeComponent();
    }

    private void btnConnect_Click(object sender, EventArgs e)
    {
        String server;

        server = cmbConnect.SelectedItem.ToString();

        MessageBox.Show(server);

        sqlConnectionNW.ConnectionString = "Data Source=" + server + ";Initial Catalog=Northwind;Integrated Security=True";

        try
        {
            sqlConnectionNW.Open();

            MessageBox.Show("Successfully Connected!");

            frmSignIn frmLogIn = new frmSignIn();

            frmLogIn.server = server;

            sqlConnectionNW.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);

        }

    }
}

}

3 个答案:

答案 0 :(得分:2)

我建议你不要这样做。要访问dataBase,最好使用自己的类,在这里您将拥有与dataBase交互的所有方法(选择,插入,更新和删除查询)。每个方法都有自己的SqlConnection实例化(创建新对象)。

你可以这样做:

public class WorkWithDataBase
{
    private void SomeMethod()
    {
        using(SqlConnection sqlConn = new SqlConnection("connectionString"))
        {
            //rest of the code
            sqlConn.Open(); //if needed)
            //and no need to close the connection, becuase "using" will take care of that!
        }
    }
}

希望它有所帮助, 米蒂亚

答案 1 :(得分:1)

我假设你的连接对象被保存在类的字段或属性中。即使字段或属性是私有的,这通常也不是一个好主意。

最佳做法是将您的连接作为本地变量保存在需要的位置。尽可能晚地打开它们并尽早关闭它们,最好将它们包裹在using块中。

答案 2 :(得分:0)

您应该将表单中的连接和所有处理提取到自己的类中 - 您可以将其称为DataHandling。将其传递到表单中,以及您想要使用它。

: - )