我正在使用3层架构的C#。我必须使用MySQL存储过程插入图像文件。这里我将图像文件转换为字节数组。但我不能直接插入字节。
Stream fs = FileUpload1.PostedFile.InputStream;
BinaryReader br = new BinaryReader(fs);
Byte[] bytes = br.ReadBytes((int)fs.Length);
string stbytes = ByteArrayToString(bytes);
所以我再次将字节转换为字符串并插入数据库。
public static string ByteArrayToString(byte[] ba)
{
string hex = BitConverter.ToString(ba);
return hex.Replace("-", "");
}
string result = objBL.InsertBankAttachmentBL(filename, contenttype, stbytes); //insert
现在我可以保存word文档了。但我无法插入图像文件。插入图像文件时会出现以下异常。
对于列' iattach_file'数据太长了在第2行
我的DAC层在这里:
string sqlCommand = "sp_F1_fileUpload";
DbCommand dbCommand = db.GetStoredProcCommand(sqlCommand);
// Retrieve products from the specified category.
db.AddInParameter(dbCommand, "ioption", DbType.String,"insert");
db.AddInParameter(dbCommand, "iattach_id", DbType.Int32, 0);
db.AddInParameter(dbCommand, "iattach_name", DbType.String, iattach_name);
db.AddInParameter(dbCommand, "iattach_extension", DbType.String, iattach_extension);
db.AddInParameter(dbCommand, "iattach_file", DbType.String, iattach_file);
在存储过程中,我使用" Blob"要保存的数据类型" iattach_file"。
需要帮助才能找到解决方案。
我的屏幕: