C# mysql 使用 Byte[] 将文件插入数据库
Posted
技术标签:
【中文标题】C# mysql 使用 Byte[] 将文件插入数据库【英文标题】:C# mysql insert file into database using Byte[] 【发布时间】:2012-12-18 19:04:08 【问题描述】:我正在 AsyncUpload 集合中执行一个简单的 foreach 循环到 Byte[] 并尝试将其插入数据库。
foreach (UploadedFile file in AsyncUpload1.UploadedFiles)
string[] splitFileExt = file.FileName.Split('.');
List<string> CommandArgs = new List<string>();
CommandArgs.Add("IID|" + Request.QueryString["InstructorID"]);
CommandArgs.Add("FName|" + file.FileName);
CommandArgs.Add("FTitle|" + file.FileName);
CommandArgs.Add("FType|" + file.ContentType);
CommandArgs.Add("FExtension|" + splitFileExt[1]);
CommandArgs.Add("FSize|" + file.ContentLength.ToString());
byte[] b = StaticControlCreationClass.ReadToEnd(file.InputStream);
mysqlProcessing.MySQLProcessor.MySQL_UploadFile(b, "fileupload", CommandArgs, mysqlCon);
public static void MySQL_UploadFile(byte[] value, string MYSQLCommand, List<string> CommandArgs, MySqlConnection con)
MySqlCommand cmd = new MySqlCommand(MYSQLCommand, con);
cmd.Parameters.AddWithValue("FContent", value);
foreach (string args in CommandArgs)
string[] splitArgs = args.Split('|');
cmd.Parameters.AddWithValue(splitArgs[0], splitArgs[1].Trim());
cmd.ExecuteNonQuery();
然后这里是存储过程
如果存在文件上传,则删除程序; 创建过程文件上传`( IID 整数, TValue varchar(250), FName varchar(250), FType varchar(15), FSize varchar(45), FContent longblob, FExtension varchar(10)) 开始 SET @IID = IID; SET @TValue = TValue; SET @FName = FName; SET @FType = FType; 设置@FSize = FSize; SET @FExtension = FExtension; SET @FContent = FContent; 插入到 tblfiles(rID, 标题, 文件名, 文件类型, 文件大小, 文件_内容, 文件扩展名) 值(@IID, @T值, @F名称, @F类型, @FS大小, @F内容, @FExtension); 结尾我不断收到You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'fileupload' at line 1
@cmd.ExecuteNonQuery();
感谢任何帮助。
【问题讨论】:
【参考方案1】:我错过了分类器说它是一个存储过程
cmd.CommandType = CommandType.StoredProcedure;
【讨论】:
以上是关于C# mysql 使用 Byte[] 将文件插入数据库的主要内容,如果未能解决你的问题,请参考以下文章
从 C# 将 byte[] 保存到 SQL Server 数据库中
使用C#书写SQLite数据库增删改查语句(以及插入byte[]时遇到的问题总结)