本文整理汇总了C#中SqlTransaction.Commit方法的典型用法代码示例。如果您正苦于以下问题:C# SqlTransaction.Commit方法的具体用法?C# SqlTransaction.Commit怎么用?C# SqlTransaction.Commit使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SqlTransaction
的用法示例。
在下文中一共展示了SqlTransaction.Commit方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: restoreBackupTable
void restoreBackupTable(BackupTable bkup, DataAccessObject dao, int totalCount, ref int currentCount)
{
SqlTable table = new SqlTable(bkup.TableName);
int progressCount = 0;
SqlTransaction transaction = new SqlTransaction(dao);
int transCount = 0;
foreach (object[] row in bkup.Data) {
currentCount++;
progressCount++;
if (progressCount > 103) {
if (WFContext.BreakExecution) return;
WFContext.Description = "Inserting record " + currentCount + " of " + totalCount + " to \"" + table.TableName + "\"...";
WFContext.SetProgress(currentCount, totalCount);
progressCount = 0;
}
SqlQuery q = new SqlQuery(dao);
q.Insert(table);
int f = -1;
foreach (object value in row) {
switch ((DataValueType)bkup.FieldTypes[++f]) {
case DataValueType.BooleanType: q.Values(new SqlFieldBoolean(bkup.FieldNames[f], table), (bool)value); break;
case DataValueType.DateTimeType: q.Values(new SqlFieldDateTime(bkup.FieldNames[f], table), (DateTime)value); break;
case DataValueType.FloatType: q.Values(new SqlFieldFloat(bkup.FieldNames[f], table), (double)value); break;
case DataValueType.IntegerType: q.Values(new SqlFieldInteger(bkup.FieldNames[f], table), (int)value); break;
case DataValueType.ShortStringType: q.Values(new SqlFieldShortString(bkup.FieldNames[f], table), (string)value); break;
case DataValueType.LongStringType: q.Values(new SqlFieldLongString(bkup.FieldNames[f], table), (string)value); break;
default: break;
}
}
q.ExecuteNonQuery();
transCount++;
if (transCount > 1000) {
transaction.Commit();
transaction = new SqlTransaction(dao);
transCount = 0;
}
}
if (transCount > 0) {
transaction.Commit();
}
}