खोज…


वाक्य - विन्यास

  • con.Execute (sql, transaction: tran); // नाम से पैरामीटर निर्दिष्ट करें
  • con.Execute (sql, पैरामीटर, ट्रॅन);
  • con.Query (sql, लेन-देन: ट्रॅन);
  • con.Query (sql, पैरामीटर, ट्रॅन);
  • प्रतीक्षारत con.ExecuteAsync (sql, transaction: tran); // Async
  • प्रतीक्षित con.ExecuteAsync (sql, पैरामीटर, ट्रॅन);
  • प्रतीक्षारत con.QueryAsync (sql, लेन-देन: ट्रॅन);
  • conit.QueryAsync (sql, पैरामीटर, ट्रॅन) का इंतजार करें;

लेन-देन का उपयोग करना

यह उदाहरण SqlConnection का उपयोग करता है, लेकिन कोई भी IDbConnection समर्थित है।

इसके अलावा किसी भी IDbTransaction संबंधित IDbConnection से समर्थित है।

public void UpdateWidgetQuantity(int widgetId, int quantity)
{
    using(var conn = new SqlConnection("{connection string}")) {
        conn.Open();

        // create the transaction
        // You could use `var` instead of `SqlTransaction`
        using(SqlTransaction tran = conn.BeginTransaction()) {
            try
            {
                var sql = "update Widget set Quantity = @quantity where WidgetId = @id";
                var parameters = new { id = widgetId, quantity };

                // pass the transaction along to the Query, Execute, or the related Async methods.
                conn.Execute(sql, parameters, tran);

                // if it was successful, commit the transaction
                tran.Commit();
            }
            catch(Exception ex)
            {
                // roll the transaction back
                tran.Rollback();

                // handle the error however you need to.
                throw;
            }
        }
    }   
}

आवेषण को गति दें

एक लेन-देन में आवेषण के एक समूह को लपेटने से उन्हें इस StackOverflow प्रश्न / उत्तर के अनुसार गति मिलेगी।

आप इस तकनीक का उपयोग कर सकते हैं, या आप संबंधित कार्यों की एक श्रृंखला को गति देने के लिए बल्क कॉपी का उपयोग कर सकते हैं।

// Widget has WidgetId, Name, and Quantity properties
public void InsertWidgets(IEnumerable<Widget> widgets)
{
    using(var conn = new SqlConnection("{connection string}")) {
        conn.Open();

        using(var tran = conn.BeginTransaction()) {
            try
            {
                var sql = "insert Widget (WidgetId,Name,Quantity) Values(@WidgetId, @Name, @Quantity)";
                conn.Execute(sql, widgets, tran);
                tran.Commit();
            }
            catch(Exception ex)
            {
                tran.Rollback();
                // handle the error however you need to.
                throw;
            }
        }
    }   
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow