请各位帮我看看为什么说链接没有关闭呢,以确定是//以下有问题和//以上有问题之间的代码有问题,就是不知道该如何解决啊。。
//监控数据库
private void tmrDB_Tick(object sender, EventArgs e)
{
ShowFriendList(); // 刷新好友列表
int MessageTypeId = 1; // 消息类型
int MessageState = 1; // 消息状态
string sql = string.Format("select top 1 Id,FromUserId,MessageTypeId,MessageState from Messages where MessageState=0 and ToUserId={0}", UserHelper.loginId);
try
{
DBhelper.connection.Open();
DBhelper.datareader = DBhelper.command(sql).ExecuteReader();
if (DBhelper.datareader.Read())
{
MessageTypeId = (int)DBhelper.datareader["MessageTypeId"];
MessageState = (int)DBhelper.datareader["MessageState"];
fromUserId = (int)DBhelper.datareader["FromUserId"];
messageId = (int)DBhelper.datareader["Id"];
friendFaceId = GetfriendFaceId(fromUserId); }
DBhelper.datareader.Close();
}
catch (Exception ex)
{ MessageBox.Show(ex.Message);
}
finally {
DBhelper.connection.Close();
} // 如果是添加好友消息让小喇叭闪烁
if (MessageTypeId == 2)
{
SoundPlayer player = new SoundPlayer("system.wav");
player.Play();
tmrAddFriend.Start();
}
// 如果是聊天消息让好友头像闪烁
else if (MessageTypeId == 1)
{
//以下有问题
sql = string.Format("select FaceId from users where Id={0}", fromUserId);
try
{
DBhelper.connection.Open();
friendFaceId = (int)DBhelper.command(sql).ExecuteScalar();
}
catch (Exception ex)
{ MessageBox.Show(ex.Message);
}
finally
{
DBhelper.connection.Close();
}
//以上有问题
// 如果发消息的人没有在列表中就添加到陌生人列表中
if (!isContainInList(fromUserId))
{
AddToStranger(fromUserId);
}
SoundPlayer player = new SoundPlayer("msg.wav");
player.Play();
tmrface.Start();
}
}
//监控数据库
private void tmrDB_Tick(object sender, EventArgs e)
{
ShowFriendList(); // 刷新好友列表
int MessageTypeId = 1; // 消息类型
int MessageState = 1; // 消息状态
string sql = string.Format("select top 1 Id,FromUserId,MessageTypeId,MessageState from Messages where MessageState=0 and ToUserId={0}", UserHelper.loginId);
try
{
DBhelper.connection.Open();
DBhelper.datareader = DBhelper.command(sql).ExecuteReader();
if (DBhelper.datareader.Read())
{
MessageTypeId = (int)DBhelper.datareader["MessageTypeId"];
MessageState = (int)DBhelper.datareader["MessageState"];
fromUserId = (int)DBhelper.datareader["FromUserId"];
messageId = (int)DBhelper.datareader["Id"];
friendFaceId = GetfriendFaceId(fromUserId); }
DBhelper.datareader.Close();
}
catch (Exception ex)
{ MessageBox.Show(ex.Message);
}
finally {
DBhelper.connection.Close();
} // 如果是添加好友消息让小喇叭闪烁
if (MessageTypeId == 2)
{
SoundPlayer player = new SoundPlayer("system.wav");
player.Play();
tmrAddFriend.Start();
}
// 如果是聊天消息让好友头像闪烁
else if (MessageTypeId == 1)
{
//以下有问题
sql = string.Format("select FaceId from users where Id={0}", fromUserId);
try
{
DBhelper.connection.Open();
friendFaceId = (int)DBhelper.command(sql).ExecuteScalar();
}
catch (Exception ex)
{ MessageBox.Show(ex.Message);
}
finally
{
DBhelper.connection.Close();
}
//以上有问题
// 如果发消息的人没有在列表中就添加到陌生人列表中
if (!isContainInList(fromUserId))
{
AddToStranger(fromUserId);
}
SoundPlayer player = new SoundPlayer("msg.wav");
player.Play();
tmrface.Start();
}
}
解决方案 »
- webbrowser在窗口最小化之后在后台继续重绘网页该如何解决?
- sqlserver2005下使用存储过程,为何ExecuteNonQuery()总是返回-1
- 如何始终获取datatable的第一行?
- 关于imagelist控件
- 如何得到IE的http请求的URL
- 正则表达式取两字符串之间所有字符
- 如何做像SQL查询分析器那种对输入的关键字以不同颜色显示?
- 为什么父类不能调用子类声明的事件?
- 小弟初学.net看什么书好啊
- 如何实现超连接!!
- Combobox在显示数据时候,为什么总是闪过“System.Data.DataRowView”字样的字符串,后才显示真正的绑定的数据
- 怎样在c#中调用c++的静态方法
SqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
你这样写,会经常遇到意想不到的问题!