P
pzf_2008
Unregistered / Unconfirmed
GUEST, unregistred user!
用ACCESS存储图片,保存图片的字段类型是OLE对象(不知问题是不是出在这里),开发环境为ASP.NET2.0,
关键代码为:
……
Stream fff = FileUpload1.PostedFile.InputStream;
// 得到提交的图片文件
int FileLength = FileUpload1.PostedFile.ContentLength;
// 得到文件长度
byte[] FileData = new byte[FileLength];
// 创建数组
fff.Read(FileData, 0 ,FileLength);
// 把文件填充到数组
String conn = …… // 此处为ACCESS数据库连接字符串
OleDbConnection myconn = new OleDbConnection(conn);
oleDbCommand mycomm = new oleDbCommand ("insert into table1 (FileName, Content) values (@FileName, @Content)", myconn);
OleDbParameter PFileName = New OleDbParameter("@FileName", OleDbType.VarChar, 50);
PFileName.Value = FileUpload1.PostedFile.FileName.ToString();
mycomm.Parameters.Add(PFileName);
OleDbParameter PContent = New OleDbParameter("@Content", OleDbType.OleDbType.LongVarBinary);
//此处我用OleDbType.Binary也尝试过,还是出错。
PContent.Value = FileData;
mycomm.Parameters.Add(PContent);
myconn.open();
mycomm.ExecuteNonQuery();
myconn.close();
……
程序编译正常,连接数据库没有任何问题,就是在插入图片数据时提示出错,出错信息为:
[red]应用程序中的服务器错误。
标准表达式中的数据类型不匹配。 [/red]
不知哪里的问题,请高手赐招!
关键代码为:
……
Stream fff = FileUpload1.PostedFile.InputStream;
// 得到提交的图片文件
int FileLength = FileUpload1.PostedFile.ContentLength;
// 得到文件长度
byte[] FileData = new byte[FileLength];
// 创建数组
fff.Read(FileData, 0 ,FileLength);
// 把文件填充到数组
String conn = …… // 此处为ACCESS数据库连接字符串
OleDbConnection myconn = new OleDbConnection(conn);
oleDbCommand mycomm = new oleDbCommand ("insert into table1 (FileName, Content) values (@FileName, @Content)", myconn);
OleDbParameter PFileName = New OleDbParameter("@FileName", OleDbType.VarChar, 50);
PFileName.Value = FileUpload1.PostedFile.FileName.ToString();
mycomm.Parameters.Add(PFileName);
OleDbParameter PContent = New OleDbParameter("@Content", OleDbType.OleDbType.LongVarBinary);
//此处我用OleDbType.Binary也尝试过,还是出错。
PContent.Value = FileData;
mycomm.Parameters.Add(PContent);
myconn.open();
mycomm.ExecuteNonQuery();
myconn.close();
……
程序编译正常,连接数据库没有任何问题,就是在插入图片数据时提示出错,出错信息为:
[red]应用程序中的服务器错误。
标准表达式中的数据类型不匹配。 [/red]
不知哪里的问题,请高手赐招!