我在服务器中创建了c#窗口服务。哪个有sqlite数据库。客户端计算机使用c#windows表单应用程序连接到服务器并从服务器db获取数据。 所以首先客户端应用程序使用http请求登录到服务器。服务器接收请求并将数据发送回客户端。
但有时即使服务正在运行,服务器也无法响应客户端,客户端也无法连接到服务器。稍后我重新启动服务,然后连接。
System.Data.DataSet rdr = db.ExecuteDataSet(@"
select i.id
from item i,field f
where i.typeid=1 and
f.value like '" + UserName + "' and i.id=f.itemid");
if (rdr.Tables[0].Rows.Count == 0)
{
rdr = null;
return false;
}
public DataSet ExecuteDataSet(String sqlExpr)
{
if (conn.State != ConnectionState.Open)
Open(DataFile);
SQLiteDataAdapter _adapter = new SQLiteDataAdapter(sqlExpr, conn);
DataSet ds = new DataSet();
_adapter.Fill(ds);
return ds;
}
上面是登录的代码。有什么东西阻塞db。请帮助我提出宝贵的答案。
此致 桑杰塔
答案 0 :(得分:0)
我不确定,但是,如果登录运行良好,问题似乎在服务器中出现错误,当您使用de sqlite打开连接时,您在使用后关闭它? sqlite有一些常规来杀死睡眠中的连接吗?
其他的事情,您使用的是component.dispose()吗?因为如果你不处理这些组件,他们会继续使用内存。