使用c#应用程序同时读写时的sqlite异常

时间:2013-10-23 12:53:25

标签: c# sqlite

在我的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();
            }


        }

此致 桑杰塔

0 个答案:

没有答案