网上看了点资料,说是由于多处数据库操作后,没有关闭数据库的操作导致的。
下面是我的代码,我基本都是这样关闭的,大家看看这样是不是确保关闭了。 ByteFX.Data.MySqlClient.MySqlConnection conn1 = new ByteFX.Data.MySqlClient.MySqlConnection(connString); conn1.Open();
ByteFX.Data.MySqlClient.MySqlCommand comm1 = new ByteFX.Data.MySqlClient.MySqlCommand();
comm1.Connection = conn1; sentSQL = "SELECT ID,Name ";
sentSQL = sentSQL + "FROM basic__info ";
sentSQL = sentSQL + "WHERE ID = " + ID; comm1.CommandText = SetGbk; try
{
comm1.ExecuteNonQuery(); comm1.CommandText = sentSQL;
ByteFX.Data.MySqlClient.MySqlDataReader rdr1 = comm1.ExecuteReader(); while (rdr1.Read())
{
uID = rdr1.GetInt32(0);
}
}
finally
{
conn1.Close();
}我把conn1.Clost()放在finally里面是不是可以确保每次都关闭了?
如果上面代码没有问题,那还可能是什么问题?请大家帮忙了。
下面是我的代码,我基本都是这样关闭的,大家看看这样是不是确保关闭了。 ByteFX.Data.MySqlClient.MySqlConnection conn1 = new ByteFX.Data.MySqlClient.MySqlConnection(connString); conn1.Open();
ByteFX.Data.MySqlClient.MySqlCommand comm1 = new ByteFX.Data.MySqlClient.MySqlCommand();
comm1.Connection = conn1; sentSQL = "SELECT ID,Name ";
sentSQL = sentSQL + "FROM basic__info ";
sentSQL = sentSQL + "WHERE ID = " + ID; comm1.CommandText = SetGbk; try
{
comm1.ExecuteNonQuery(); comm1.CommandText = sentSQL;
ByteFX.Data.MySqlClient.MySqlDataReader rdr1 = comm1.ExecuteReader(); while (rdr1.Read())
{
uID = rdr1.GetInt32(0);
}
}
finally
{
conn1.Close();
}我把conn1.Clost()放在finally里面是不是可以确保每次都关闭了?
如果上面代码没有问题,那还可能是什么问题?请大家帮忙了。
{
if(con != null)
{
con.Close();
}
}
还是这样
using( ByteFX.Data.MySqlClient.MySqlConnection conn1 = new ByteFX.Data.MySqlClient.MySqlConnection(connString);)
{}
释放资源,是否还有其他问题,如死循环,页面错误等,看看内存占用情况
是不是使用using连conn1.Close都不用输入了?
我记得好像是这样
但是像死循环,与页面错误(像SQL语句不正确) while 一个错误的记录集。这种导致CPU100%的可能相当大
{
long Bticks = DateTime.Now.Ticks;
Console.WriteLine("open database {0}", Bticks);
sqlConn.Open();
string sql = "Select ContactName,CompanyName From Customers";
using (SqlCommand sqlCmd = new SqlCommand(sql, sqlConn))
{
using (SqlDataReader sqlRead = sqlCmd.ExecuteReader())
{
Console.WriteLine("Time:{0} Ticks", DateTime.Now.Ticks - Bticks);
while (sqlRead.Read())
{
Console.WriteLine("Contact:{0,-30} Company:{1}", sqlRead.GetString(0), sqlRead.GetString(1));
}
}
}
}
希望能帮到你,不使用了就尽早关闭.
还有就是看一下数据是否还有需要建立索引的地方。。提高数据处理的速度。