Heim  >  Artikel  >  Backend-Entwicklung  >  So erstellen Sie eine Transaktion in asp.net

So erstellen Sie eine Transaktion in asp.net

高洛峰
高洛峰Original
2016-12-28 11:05:551508Durchsuche

1. Erstellen Sie eine Liste zum Speichern mehrerer Anweisungen

/// <summary>
/// 保存表单
/// </summary>
/// <param name="context"></param>
protected void save()
{
 List<string> list = new List<string>();
 list.Add(string.Format("insert into picsone(model,idser,idflg,lmuser,lmdate,lmtime) values(&#39;{0}&#39;,&#39;{1}&#39;,&#39;{2}&#39;,&#39;{3}&#39;,{4},{5})", "T1002", "Y", "N", "U001", 20161103, 140025));
 list.Add(string.Format("insert into picstwo(model,idser,idflg,lmuser,lmdate,lmtime) values(&#39;{0}&#39;,&#39;{1}&#39;,&#39;{2}&#39;,&#39;{3}&#39;,{4},{5})", "T1002", "Y", "N", "U001", 20161103, 140025));
 bool bol = ExecuteTransaction(list);
 if (bol)
 {
  MessageBox.Show("保存成功!");
 }
 else
 {
  MessageBox.Show("保存失败!");
 }
}

2. Rufen Sie die ExecuteTransaction-Methode auf und geben Sie den Rückgabewert „true“ für Erfolg und „false“ für Fehler zurück, und die Anweisung wird zurückgesetzt

/// <summary>
/// 执行语句
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
private bool ExecuteTransaction(List<string> list)
{
 using (SqlConnection connection = new SqlConnection(ConfigurationManager.AppSettings["LocalConnectionString"].ToString()))
 {
  SqlCommand command = new SqlCommand();
  SqlTransaction transaction = null;
  try
  {
   connection.Open();
   transaction = connection.BeginTransaction();
   command.Connection = connection;
   command.Transaction = transaction;
  
   for (int i = 0; i < list.Count; i++)
   {
    command.CommandText = list[i];
    command.ExecuteNonQuery();
   }
  
   transaction.Commit();
   connection.Close();
   return true;
  }
  catch
  {
   transaction.Rollback();
   connection.Close();
   return false;
  }
 }
}

Weitere Artikel zum Erstellen von Transaktionen in asp.net finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn