.net上传文件时同时将数据存入数据库

/// <summary>
        /// 在上传文件时同时将数据存入数据库所做的事务操作,返回是否操作成功
        /// </summary>
        /// <param name="cmdText">insert命令</param>
        /// <param name="myParams">sql参数数组</param>
        /// <param name="file">文件上传组件</param>
        /// <param name="fileName">保存的文件名</param>
        protected bool RunTranscation(string cmdText, OleDbParameter[] myParams, FileUpload file,string fileName)
        {
            string connectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["McmConnection"].ToString();//连接数据库字符串
            OleDbConnection conn = new OleDbConnection(connectionString);//新建连接
            conn.Open();//打开连接
            OleDbTransaction otran = conn.BeginTransaction();//开启事务
            OleDbCommand cmd = new OleDbCommand(cmdText, conn);//创建命令
            cmd.Transaction = otran;//设置命令的事物为otran

            int result = 0;//判断插入数据库是否成功

            //为cmd添加参数
            foreach (OleDbParameter param in myParams)
            {
                cmd.Parameters.Add(param);
            }

            try
            {
                result=cmd.ExecuteNonQuery();//执行插入操作
                if (result == 1)//如果插入成功
                {
                    //string fileName = file.FileName;//文件名
                    //string sNewFileName = DateTime.Now.ToString("yyyyMMddhhmmsfff");//以时间来重命名图片
                    //string sExtension = file.FileName.Substring(file.FileName.LastIndexOf('.'));//图片的后缀名
                    //file.SaveAs(uploadPath + sNewFileName + sExtension);//保存图片文件
                    //string filePath = "../Uploads/" + folderName + "/" + sNewFileName + sExtension;//上传到Uploads文件夹的不同的文件夹下


                    file_pastPaper.SaveAs(Server.MapPath("../"+fileName));//上传到文件夹中
                    otran.Commit();//提交事务
                    return true;
                }
                otran.Rollback();//回滚事务,操作失败
            }
            catch (Exception se)
            {
                //Response.Write("<script>alert('"+se.Message+"')</script>");\
                //Response.Write("<script>alert('"+se.Message.ToString()+"')</script>");
                otran.Rollback();//回滚事务
                return false;
            }
            finally
            {
                conn.Close();
            }

            return false;
        }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值