2016-07-24 5 views
-1

2つのテーブルがあるSqlite私は最初のテーブルにデータを挿入してから、しかし、最初のテーブルに挿入して2番目のテーブルに失敗した場合は、最初のテーブルに挿入したデータを削除する必要があります。これをC#でsqliteでどのように管理するのですか? 私はこれを管理するためにsqliteまたはSQLに任意の方法があるのですか?最初のテーブルへの挿入が正常に終了した場合はデータを2番目のテーブルに挿入するその他の場合はデータを挿入しない

   queryString = string.Format(@"insert into customerHost values('{0}','{1}','{2}','{3}','{4}','{5}')", 
       "1", userID, hostPlan, hostServiceDate, hostExpiresOn ,hostPrice); 
      if (new dataAccess().insertQuery(queryString) == 1)// if data has been inserted into the first table successfully then insert into the second one 
      { 
       MessageBox.Show("good", "good"); 
       queryString = String.Format(@"insert into hostUpdate values('{0}','{1}','{2}','{3}')", 
        Guid.NewGuid().ToString(), userID, hostServiceDate, hostExpiresOn); 
       if (new dataAccess().insertQuery(queryString) != 1)//if data insertion into the second table failed then throw an errro....in fact data inserted into the first table must be removed 
        MessageBox.Show("some errors has been occured ", "error"); 
      } 
+3

使用....完全な答えであり、それはあなたが取り付けられており、データベース内取引にさらにいくつかの記事かもしれを読まなければならないです以下、単なる一例であることに注意してくださいトランザクション – harishr

+0

どのようにそれをユーザーに?? – ako

+1

[そのようなものを検索する]方法があれば(http://stackoverflow.com/search?tab=votes&q=%5bc%23%5d%20transaction)... –

答えて

-1

あなたはSQLiteの中でトリガを使用することができます。 は、ここで私はC#で使用するコードです。 https://www.sqlite.org/lang_createtrigger.html

+1

リンクのみの回答は推奨されません。あなたは、あなたのリンクから関連する部分を答えに含めてください。 – Wtower

-1

あなたはそれについて簡単にGoogleをすることができます。私はしたが、以下はGoogleによって与えられたfirst linkで見つかったコードの一部です。

以下

 string cs = "URI=file:test.db";   

    using (SqliteConnection con = new SqliteConnection(cs)) 
    { 
     con.Open(); 

     using(SqliteTransaction tr = con.BeginTransaction()) 
     { 
      using (SqliteCommand cmd = con.CreateCommand()) 
      { 

       cmd.Transaction = tr; 
       cmd.CommandText = "DROP TABLE IF EXISTS Friends"; 
       cmd.ExecuteNonQuery(); 

      ............... 

      } 

      tr.Commit(); 
     } 

     con.Close(); 
    } 
} 
+0

これは完全ではありません。それは何も挿入しません。 –

関連する問題