日期:2014-05-20 浏览次数:21792 次
/// <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; }
------解决方案--------------------
400M以内的FileUpLoad控件可以直接搞定