C#实现的事务
发布时间:2020-05-25 03:26:52 所属栏目:PHP 来源:互联网
导读:1、创建事务的结构SqlConnection sqlConnection = new SqlConnection();...初始化连接// 开启事务SqlTransaction sqlTransaction = sqlConnection.BeginTransaction();// 将事务应用于CommandSqlCommand sqlCommand = new SqlCommand();sqlCommand.Connection
1、创建事务的结构 SqlConnection sqlConnection = SqlTransaction sqlTransaction = SqlCommand sqlCommand = ==2、简单例子 = = System.Data.SqlClient.SqlConnection(= ==(DataRow dr = ].Value = Convert.ToInt32(dr[].Value = dr[另外一个例子,稍微复杂一点,注意每次执行的时候要清除上一次的参数 identity = = SqlConnection(ConfigurationManager.ConnectionStrings[==== </span><span style="color: #0000ff;">try</span><span style="color: #000000;">
{
</span><span style="color: #008000;">//</span><span style="color: #008000;">1写入问卷</span>
command.CommandText = <span style="color: #800000;">"</span><span style="color: #800000;">Questionnaire_ADD</span><span style="color: #800000;">"</span><span style="color: #000000;">;
SqlParameter[] parms </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SqlParameter[] {
</span><span style="color: #0000ff;">new</span> SqlParameter(<span style="color: #800000;">"</span><span style="color: #800000;">@ID</span><span style="color: #800000;">"</span><span style="color: #000000;">,SqlDbType.Int),</span><span style="color: #0000ff;">new</span> SqlParameter(<span style="color: #800000;">"</span><span style="color: #800000;">@QuestionnaireTitle</span><span style="color: #800000;">"</span><span style="color: #000000;">,SqlDbType.NVarChar)
};
parms[</span><span style="color: #800080;">0</span>].Value =<span style="color: #000000;"> questionnaire.ID;
parms[</span><span style="color: #800080;">1</span>].Value =<span style="color: #000000;"> questionnaire.QuestionnaireTitle;
command.Parameters.AddRange(parms);
</span><span style="color: #0000ff;">int</span> questionnaireID =<span style="color: #000000;"> Convert.ToInt32(command.ExecuteScalar());
identity </span>=<span style="color: #000000;"> questionnaireID;
</span><span style="color: #008000;">//</span><span style="color: #008000;">2写入题目</span>
<span style="color: #0000ff;">for</span>(<span style="color: #0000ff;">int</span> i = <span style="color: #800080;">0</span>; i < questionnaire.Questions.Count; i++<span style="color: #000000;">)
{
command.CommandText </span>= <span style="color: #800000;">"</span><span style="color: #800000;">Question_ADD</span><span style="color: #800000;">"</span><span style="color: #000000;">;
command.Parameters.Clear();
parms </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SqlParameter[] {
</span><span style="color: #0000ff;">new</span> SqlParameter(<span style="color: #800000;">"</span><span style="color: #800000;">@ID</span><span style="color: #800000;">"</span><span style="color: #000000;">,questionnaire.ID),</span><span style="color: #0000ff;">new</span> SqlParameter(<span style="color: #800000;">"</span><span style="color: #800000;">@QuestionTitle</span><span style="color: #800000;">"</span><span style="color: #000000;">,questionnaire.Questions[i].QuestionTitle),</span><span style="color: #0000ff;">new</span> SqlParameter(<span style="color: #800000;">"</span><span style="color: #800000;">@Sequence</span><span style="color: #800000;">"</span><span style="color: #000000;">,questionnaire.Questions[i].Sequence),</span><span style="color: #0000ff;">new</span> SqlParameter(<span style="color: #800000;">"</span><span style="color: #800000;">@QuestionTypeID</span><span style="color: #800000;">"</span><span style="color: #000000;">,questionnaire.Questions[i].QuestionTypeID),</span><span style="color: #0000ff;">new</span> SqlParameter(<span style="color: #800000;">"</span><span style="color: #800000;">@QuestionnaireID</span><span style="color: #800000;">"</span><span style="color: #000000;">,questionnaireID)};
command.Parameters.AddRange(parms);
</span><span style="color: #0000ff;">int</span> questionID =<span style="color: #000000;"> Convert.ToInt32(command.ExecuteScalar());
identity </span>=<span style="color: #000000;"> questionID;
</span><span style="color: #0000ff;">if</span>((questionnaire.Questions[i].QuestionType == QuestionType.singlechoice) || (questionnaire.Questions[i].QuestionType ==<span style="color: #000000;"> QuestionType.multiplechoice))
{
</span><span style="color: #0000ff;">for</span>(<span style="color: #0000ff;">int</span> j = <span style="color: #800080;">0</span>; j < questionnaire.Questions[i].ChoiceItems.Count; j++<span style="color: #000000;">)
{
command.CommandText </span>= <span style="color: #800000;">"</span><span style="color: #800000;">ChoiceItem_ADD</span><span style="color: #800000;">"</span><span style="color: #000000;">;
command.Parameters.Clear();
parms </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SqlParameter[]{
</span><span style="color: #0000ff;">new</span> SqlParameter(<span style="color: #800000;">"</span><span style="color: #800000;">@ID</span><span style="color: #800000;">"</span><span style="color: #000000;">,questionnaire.Questions[i].ChoiceItems[j].ID),</span><span style="color: #0000ff;">new</span> SqlParameter(<span style="color: #800000;">"</span><span style="color: #800000;">@ItemContent</span><span style="color: #800000;">"</span><span style="color: #000000;">,questionnaire.Questions[i].ChoiceItems[j].ItemContent),</span><span style="color: #0000ff;">new</span> SqlParameter(<span style="color: #800000;">"</span><span style="color: #800000;">@Options</span><span style="color: #800000;">"</span><span style="color: #000000;">,questionnaire.Questions[i].ChoiceItems[j].Option),</span><span style="color: #0000ff;">new</span> SqlParameter(<span style="color: #800000;">"</span><span style="color: #800000;">@QuestionID</span><span style="color: #800000;">"</span><span style="color: #000000;">,questionID)};
command.Parameters.AddRange(parms);
identity </span>=<span style="color: #000000;"> Convert.ToInt32(command.ExecuteScalar());
}
}
}
transaction.Commit();
}
</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">(Exception ex)
{
transaction.Rollback();
</span><span style="color: #0000ff;">throw</span><span style="color: #000000;">;
}
</span><span style="color: #0000ff;">finally</span><span style="color: #000000;">
{
connection.Close();
transaction.Dispose();
connection.Dispose();
}
</span><span style="color: #0000ff;">return</span><span style="color: #000000;"> identity;
}</span></pre>
(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |