0

私はすべてを試しましたが、常に「com.Transaction = trx;」で System.NullreferencesException を返します。

   public override int ExecuteNonQuery(string query)
    {

        int register=0;
        SQLiteTransaction trx=null;
        SQLiteCommand com;
        try
        {
            if (this.IsClosed()) this.Open();

                trx = con.BeginTransaction();
                com = new SQLiteCommand(query, con);
                com.Transaction = trx;
                register = com.ExecuteNonQuery();
                trx.Commit();

            return register;
        }
        catch (SQLiteException ex)
        {
            trx.Rollback();//se tiene q deshaser toda la trransaccion hecha
            throw ex;
        }

        finally
        {
            this.Close();
        }

    }

エラーがどこにあるのかわかりません:(

これがトランザクションで私をスローする例外です

アップデート:

ここに例外の詳細があります

4

2 に答える 2

0

私はそれを修正しました、問題はトランザクションにありました、私はsqliteがそれをサポートしていないと思います、私はそれをコメントしました、そしてすべてが魅力のように働きます.

  public override int ExecuteNonQuery(string query)
    {

        int register=0;
        //SQLiteTransaction trx=null;
        SQLiteCommand com;
        try
        {
            if (con.State == ConnectionState.Closed) this.Open();

                //trx = con.BeginTransaction();//para hacer transaciones para que la base de datos este estable
                com = new SQLiteCommand(query, con);
                //com.Transaction = trx;
                register = com.ExecuteNonQuery();//recien hacemos la coneccion en esta linea
               // trx.Commit();

            return register;
        }
        catch (SQLiteException ex)
        {
           // trx.Rollback();//se tiene q deshaser toda la trransaccion hecha
            throw ex;
        }

        finally
        {
            this.Close();
        }

    }
于 2013-12-19T09:29:42.203 に答える