滴滴答答哒 2021-05-15 15:43 采纳率: 33.3%
浏览 8

c#代码有一个 ExtensionMethod方法,看一下这条数据是自己写的还是生成的,和他的意思

        /// <summary>
        /// 增加一条数据
        /// </summary>
        public long Add(Tgxx.Application.Model.Class model, string parentClassList)
        {
            int result = 0;
            using (SqlConnection con = new SqlConnection(DbHelperSQL.connectionString))
            {
                con.Open();
                using (SqlTransaction sqt = con.BeginTransaction())
                {
                    try
                    {
                        StringBuilder strSql = new StringBuilder();
                        strSql.Append("insert into Class(");
                        strSql.Append("title,rigestLevelID,singleTitle,code,parentID,classList,classLayer,sortID,linkUrl,linkType,imgUrl,details,isLock,remark,bakOne,bakTwo,bakThree,year,insertTime,updateTime)");
                        strSql.Append(" values (");
                        strSql.Append("@title,@rigestLevelID,@singleTitle,@code,@parentID,@classList,@classLayer,@sortID,@linkUrl,@linkType,@imgUrl,@details,@isLock,@remark,@bakOne,@bakTwo,@bakThree,@year,@insertTime,@updateTime)");
                        strSql.Append(";select @@IDENTITY");
                        SqlParameter[] parameters = {
                    new SqlParameter("@title", SqlDbType.NVarChar,100),
                    new SqlParameter("@rigestLevelID", SqlDbType.BigInt,8),
                    new SqlParameter("@singleTitle", SqlDbType.NVarChar,100),
                    new SqlParameter("@code", SqlDbType.NVarChar,50),
                    new SqlParameter("@parentID", SqlDbType.BigInt,8),
                    new SqlParameter("@classList", SqlDbType.NVarChar,500),
                    new SqlParameter("@classLayer", SqlDbType.Int,4),
                    new SqlParameter("@sortID", SqlDbType.Int,4),
                    new SqlParameter("@linkUrl", SqlDbType.NVarChar,255),
                    new SqlParameter("@linkType", SqlDbType.NVarChar,50),
                    new SqlParameter("@imgUrl", SqlDbType.NVarChar,255),
                    new SqlParameter("@details", SqlDbType.NText),
                    new SqlParameter("@isLock", SqlDbType.Int,4),
                    new SqlParameter("@remark", SqlDbType.NVarChar,150),
                    new SqlParameter("@bakOne", SqlDbType.NVarChar,50),
                    new SqlParameter("@bakTwo", SqlDbType.NVarChar,50),
                    new SqlParameter("@bakThree", SqlDbType.NVarChar,50),
                    new SqlParameter("@year", SqlDbType.NVarChar,50),
                    new SqlParameter("@insertTime", SqlDbType.NVarChar,50),
                    new SqlParameter("@updateTime", SqlDbType.NVarChar,50)};
                        parameters[0].Value = model.title;
                        parameters[1].Value = model.rigestLevelID;
                        parameters[2].Value = model.singleTitle;
                        parameters[3].Value = model.code;
                        parameters[4].Value = model.parentID;
                        parameters[5].Value = model.classList;
                        parameters[6].Value = model.classLayer;
                        parameters[7].Value = model.sortID;
                        parameters[8].Value = model.linkUrl;
                        parameters[9].Value = model.linkType;
                        parameters[10].Value = model.imgUrl;
                        parameters[11].Value = model.details;
                        parameters[12].Value = model.isLock;
                        parameters[13].Value = model.remark;
                        parameters[14].Value = model.bakOne;
                        parameters[15].Value = model.bakTwo;
                        parameters[16].Value = model.bakThree;
                        parameters[17].Value = model.year;
                        parameters[18].Value = model.insertTime;
                        parameters[19].Value = model.updateTime;

                        object obj = DbHelperSQL.GetSingle(con, sqt, strSql.ToString(), parameters);
                        if (obj == null)
                        {
                            throw new Exception("faild");
                        }
                        StringBuilder strSqlUpdate = new StringBuilder();
                        strSqlUpdate.Append("update Class set classList = @classList where ID =@ID");
                        SqlParameter[] sp = {
                                              new SqlParameter("@classList", SqlDbType.NVarChar, 50),
                                              new SqlParameter("@ID", SqlDbType.Int, 5)
                                            };
                        sp[0].Value = parentClassList + obj + ",";
                        sp[1].Value = Convert.ToInt32(obj);
                        int res = DbHelperSQL.ExecuteSql(con, sqt, strSqlUpdate.ToString(), sp);
                        if (res < 1)
                        {
                            throw new Exception("faild");
                        }
                        result = 1;
                        sqt.Commit();
                    }
                    catch
                    {
                        result = 0;
                        sqt.Rollback();
                    }
                }
                con.Close();
            }
            return result;
        }

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-06-22 01:12
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    这是一个用于向数据库中添加数据的方法。该方法接受两个参数:一个是Class类型的model,表示要添加的数据对象;另一个是一个字符串类型的parentClassList,暂未使用,可能是备用参数。 在方法中,首先声明一个result变量,暂时赋值为0;接着,创建一个SqlConnection对象,并打开连接;再创建一个SqlTransaction对象,开始事务处理。 然后,使用StringBuilder类型的实例strSql来存储SQL语句。将需要插入的表名和列名拼接起来,以及需要插入的值,其中用@符号表示参数名,具体赋值则需要在后面的代码中进行。最后,用@符号表示SELECT @@IDENTITY,获取到刚插入的数据的主键值。 接着,创建一个SqlParameter类型的数组parameters,用来保存SQL语句中的参数。使用parameters数组来初始化参数,并依次赋值。 然后依次将model中的属性值赋给parameters数组对应位置的参数。 最后,使用SqlCommand执行SQL语句,获取插入的数据的主键值,并将其返回。如果执行出现异常,则使用Rollback方法回滚事务,释放相关资源。 代码示例:
    public long Add(Tgxx.Application.Model.Class model, string parentClassList)
    {
        long result = 0;
        using (SqlConnection con = new SqlConnection(DbHelperSQL.connectionString))
        {
            con.Open();
            using (SqlTransaction sqt = con.BeginTransaction())
            {
                try
                {
                    StringBuilder strSql = new StringBuilder();
                    strSql.Append("insert into Class(");
                    strSql.Append("title,rigestLevelID,singleTitle,code,parentID,classList,classLayer,sortID,linkUrl,linkType,imgUrl,details,isLock,remark,bakOne,bakTwo,bakThree,year,insertTime,updateTime)");
                    strSql.Append(" values (");
                    strSql.Append("@title,@rigestLevelID,@singleTitle,@code,@parentID,@classList,@classLayer,@sortID,@linkUrl,@linkType,@imgUrl,@details,@isLock,@remark,@bakOne,@bakTwo,@bakThree,@year,@insertTime,@updateTime);select @@IDENTITY");
                    SqlParameter[] parameters = {
                        new SqlParameter("@title", SqlDbType.NVarChar,100),
                        new SqlParameter("@rigestLevelID", SqlDbType.BigInt,8),
                        new SqlParameter("@singleTitle", SqlDbType.NVarChar,100),
                        new SqlParameter("@code", SqlDbType.NVarChar,50),
                        new SqlParameter("@parentID", SqlDbType.BigInt,8),
                        new SqlParameter("@classList", SqlDbType.NVarChar,500),
                        new SqlParameter("@classLayer", SqlDbType.Int,4),
                        new SqlParameter("@sortID", SqlDbType.Int,4),
                        new SqlParameter("@linkUrl", SqlDbType.NVarChar,255),
                        new SqlParameter("@linkType", SqlDbType.NVarChar,50),
                        new SqlParameter("@imgUrl", SqlDbType.NVarChar,255),
                        new SqlParameter("@details", SqlDbType.NText),
                        new SqlParameter("@isLock", SqlDbType.Int,4),
                        new SqlParameter("@remark", SqlDbType.NVarChar,150),
                        new SqlParameter("@bakOne", SqlDbType.NVarChar,50),
                        new SqlParameter("@bakTwo", SqlDbType.NVarChar,50),
                        new SqlParameter("@bakThree", SqlDbType.NVarChar,50),
                        new SqlParameter("@year", SqlDbType.NVarChar,50),
                        new SqlParameter("@insertTime", SqlDbType.NVarChar,50),
                        new SqlParameter("@updateTime", SqlDbType.NVarChar,50)};
                    parameters[0].Value = model.title;
                    parameters[1].Value = model.rigestLevelID;
                    parameters[2].Value = model.singleTitle;
                    parameters[3].Value = model.code;
                    parameters[4].Value = model.parentID;
                    parameters[5].Value = model.classList;
                    parameters[6].Value = model.classLayer;
                    parameters[7].Value = model.sortID;
                    parameters[8].Value = model.linkUrl;
                    parameters[9].Value = model.linkType;
                    parameters[10].Value = model.imgUrl;
                    parameters[11].Value = model.details;
                    parameters[12].Value = model.isLock;
                    parameters[13].Value = model.remark;
                    parameters[14].Value = model.bakOne;
                    parameters[15].Value = model.bakTwo;
                    parameters[16].Value = model.bakThree;
                    parameters[17].Value = model.year;
                    parameters[18].Value = model.insertTime;
                    parameters[19].Value = model.updateTime;
                    SqlCommand cmd = con.CreateCommand();
                    cmd.Transaction = sqt;
                    cmd.CommandText = strSql.ToString();
                    cmd.Parameters.AddRange(parameters);
                    result = Convert.ToInt64(cmd.ExecuteScalar());
                    sqt.Commit();  // 提交事务
                }
                catch (Exception ex)
                {
                    sqt.Rollback();  // 回滚事务
                    throw ex;
                }
            }
        }
        return result;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵