C#-到SQL Server 2005的公共全局连接
本文关键字:全局 连接 2005 SQL Server C#- | 更新日期: 2023-09-27 18:24:55
我是C#的新手,昨天刚开始学习。
我已经创建了连接到SQL Server的类:
namespace Exchange_Ofiice.Classes
{
public class sqlConn
{
public void connectionMethod()
{
SqlConnection myConnection = new SqlConnection("user id=ID;password=PASS;server=SERVER;database=DB;");
try
{
myConnection.Open();
}
catch
{
MessageBox.Show("Невозможно подключиться к Базе данных. Пожалуйста обратитесь к программистам!", "Ошибка подключения к Базе данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
myConnection.Close();
}
}
}
}
以及另一类用户身份验证:
namespace Exchange_Ofiice.Classes
{
public class auth:sqlConn
{
public void authMethod()
{
SqlCommand myCommand = new SqlCommand("Command String", myConnection);
}
}
}
如何在第二类中获得(使用)SQL连接结果(myConnection
)?
p.S.线路SqlCommand myCommand = new SqlCommand("Command String", myConnection);
不工作。
p.S.S.对不起,如果我弄错了,我的英语不太好。
试试这个。因此,SQLConnection在类中,而不是在函数中。如果您在一个函数中声明某个东西,那么它将只能在该函数中访问。
public class sqlConn
{
public SqlConnection myConnection;
public void connectionMethod()
{
myConnection = new SqlConnection("user id=ID;password=PASS;server=SERVER;database=DB;");
try
{
myConnection.Open();
}
catch
{
MessageBox.Show("Невозможно подключиться к Базе данных. Пожалуйста обратитесь к программистам!", "Ошибка подключения к Базе данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
myConnection.Close();
}
}
}
哦,你可能想考虑将SQLConnection设为专用
private SqlConnection myConnection;
然后生成一个函数来检索该值。
public SqlConnection GetConnection()
{
return myConnection;
}
在另一类中,它将是:
SqlCommand myCommand = new SqlCommand("Command String", GetConnection());
首先,连接应该是类的公共字段,而不是函数变量。其次,你终于关闭了你的连接,所以你以后没有机会让它发挥作用。
public class sqlConn
{
public SqlConnection myConnection = new SqlConnection("user id=ID;password=PASS;server=SERVER;database=DB;");
public void connectionMethod()
{
try
{
myConnection.Open();
}
catch
{
//Here goes error handling...
}
}
}
当然,在authMethod中,如果连接未初始化,您应该检查连接状态,以防止出现异常。
此外,作为一种良好的做法,请确保实现IDisposable接口(http://msdn.microsoft.com/en-us/library/system.idisposable.aspx)对于你的连接类,否则你以后可能会遇到一些麻烦。