zoukankan      html  css  js  c++  java
  • c#保存数据 使用事务和参数化 标准

    SqlConnection cn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["wishConnectionString"].ConnectionString);
                SqlTransaction ta
    = null;
               
    try
                {
                    cn.Open();
                    ta
    = cn.BeginTransaction();
                    SqlCommand cmd
    = new SqlCommand("insert into tbl_Question(course,question,point,ken,type,[delete]) values(@course,@question,@point,@ken,@type,@delete);select @id = scope_identity()", cn);
                    cmd.Transaction
    = ta;
                    cmd.Parameters.Add(
    "@id", SqlDbType.Int).Direction = ParameterDirection.Output;
                    cmd.Parameters.AddWithValue(
    "@course", Request.QueryString["course"]);
                    cmd.Parameters.AddWithValue(
    "@question", txtQuestion.Text.Trim());
                    cmd.Parameters.AddWithValue(
    "@point", dropPoint.SelectedValue);
                    cmd.Parameters.AddWithValue(
    "@ken", dropKen.SelectedValue);
                    cmd.Parameters.AddWithValue(
    "@type", Request.QueryString["type"]);
                    cmd.Parameters.AddWithValue(
    "@delete", 0);

                    cmd.ExecuteNonQuery();
                   
    int id = (int)cmd.Parameters["@id"].Value;
                    cmd.Parameters.Clear();
                    cmd.CommandText
    = "insert into tbl_Answer([ID_Question], [Option], [iskey]) values(@id_Question, @option, @iskey)";
                   
    for (int i = 1; i <= 4; i++)
                    {
                        cmd.Parameters.AddWithValue(
    "@id_Question", id);
                        cmd.Parameters.AddWithValue(
    "@option", (Form.FindControl("txtAnswer" + i.ToString()) as TextBox).Text);
                        cmd.Parameters.AddWithValue(
    "@iskey", (Form.FindControl("chkKey" + i.ToString()) as CheckBox).Checked);
                        cmd.ExecuteNonQuery();
                        cmd.Parameters.Clear();
                    }
                    ta.Commit();
                    lblMessage.Text
    = "添加成功!";
                }
               
    catch (Exception ex)
                {
                   
    try
                    {
                        ta.Rollback();
                    }
                   
    catch (Exception exx)
                    {
                        lblMessage.Text
    = exx.Message;
                    }
                    lblMessage.Text
    = ex.Message;
                }
               
    finally
                {
                    cn.Close();
                }

  • 相关阅读:
    装饰器
    返回函数
    用Token令牌维护微服务之间的通信安全的实现
    用Windbg来分析.Net程序的dump
    Windows下docker的安装,将ASP.NET Core程序部署在Linux和Docker中
    StackExchange.Redis学习笔记(五) 发布和订阅
    StackExchange.Redis学习笔记(四) 事务控制和Batch批量操作
    StackExchange.Redis学习笔记(三) 数据库及密码配置 GetServer函数
    StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用
    Task及Mvc的异步控制器 使用探索
  • 原文地址:https://www.cnblogs.com/zzxap/p/2175961.html
Copyright © 2011-2022 走看看