我的第一个表单上有一个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);
}
}
}
}
答案 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。将其传递到表单中,以及您想要使用它。
: - )