在C SHARP中写了一个联接到数据库的程序.当没有按下button时,在企业管理器中的sql的当前活动中没有找到,数据联接,当按下button时,再在后台去看,发现出现了联接
并且处理sleep状态.问题是我所有的数据库操作都在button的函数体里,并且没有定义全局的数据联接器,
当这个button函数执行后,那么在这个程序内的所有对象都应该析构.这其中也应该包括SqlConnect对象.
在VB6中,在一个函数体定义的记录集,和联接器,一但函数执行完后,再到后台去看,没有发现任何联接,即使是刷新也没有出现,就象从来没有联接过一样.
不知c sharp为何不行.如果行,怎么样才能断开呢?(执行close()方法也不能断开)thanks
并且处理sleep状态.问题是我所有的数据库操作都在button的函数体里,并且没有定义全局的数据联接器,
当这个button函数执行后,那么在这个程序内的所有对象都应该析构.这其中也应该包括SqlConnect对象.
在VB6中,在一个函数体定义的记录集,和联接器,一但函数执行完后,再到后台去看,没有发现任何联接,即使是刷新也没有出现,就象从来没有联接过一样.
不知c sharp为何不行.如果行,怎么样才能断开呢?(执行close()方法也不能断开)thanks
/// 执行SQL语句,返回影响的记录数
/// </summary>
/// <param name="SQLString"></param>
/// <returns></returns>
public int ExecuteSql(string SQLString)
{
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
using (OleDbCommand cmd = new OleDbCommand(SQLString, connection))
{
try
{
connection.Open();
int rows = cmd.ExecuteNonQuery();
return rows;
}
catch (System.Data.OleDb.OleDbException E)
{
throw new Exception(E.Message);
}
}
}
}
/// 执行查询语句,返回OleDbDataReader
/// </summary>
/// <param name="strSQL"></param>
/// <returns></returns>
public OleDbDataReader ExecuteReader(string strSQL)
{
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
OleDbCommand cmd = new OleDbCommand(strSQL, connection);
OleDbDataReader myReader;
try
{
connection.Open();
myReader = cmd.ExecuteReader();
return myReader;
}
catch (System.Data.OleDb.OleDbException e)
{
throw new Exception(e.Message);
}
finally
{
cmd.Dispose();
connection.Close();
}
}
}