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();
                }

  • 相关阅读:
    Windows CMD 配置 启动 服务
    Starting a Service
    socket 相关文章
    Qt GUI程序带命令行
    socket 双向
    winsock Options
    winsock 主动切断连接 Connection Setup and Teardown
    在 u 开头的单词前面,用 a 还是 an
    Web自动化----搭建基本环境
    Python----yield 生成器
  • 原文地址:https://www.cnblogs.com/zzxap/p/2175961.html
Copyright © 2011-2022 走看看