在我的c#应用程序中,我面临如下例外, 获取项目失败,原因:尝试读取或写入受保护的内存。这通常表明其他内存已损坏。
当同时调用两个url时会发生上述异常。这在下面描述,
http://localhost.:8081/statistics/postdata?sessionId=utviuataoe http://localhost.:8081/item/detail/2916/content
其中postdata将数据写入sqlite数据库,每次都是后台进程。同时需要向最终用户显示一些图像然后发生异常。
使用的数据库是sqlite。为了将数据写入sqlite,使用下面的代码。
if (conn.State != ConnectionState.Open)
Open(DataFile);
using (SQLiteTransaction dbtrans = conn.BeginTransaction())
{
using (cmd.Connection = conn)
{
try
{
cmd.CommandText = cmd.CommandText;
cmd.Transaction = dbtrans;
ireturn = cmd.ExecuteNonQuery();
dbtrans.Commit();
cmd.Dispose();
conn.Close();
}
catch (Exception)
{
}
}
}
对于读取数据,使用代码
public SQLiteDataReader ExecuteSQL(String sqlExpr)
{
if (conn.State != ConnectionState.Open)
Open(DataFile);
using (SQLiteCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sqlExpr + ";PRAGMA read_uncommitted = 1;";
cmd.CommandType = CommandType.Text;
return cmd.ExecuteReader();
}
}
此致 桑杰塔