ASP.NET2.0向ACCESS的OLE对象字段插入图片出错!请高手赐教!(100分)

  • 主题发起人 主题发起人 pzf_2008
  • 开始时间 开始时间
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]
不知哪里的问题,请高手赐招!
 
ding一下!
 
我刚刚开发过类似的程序,代码给你参考一下
一个是添加PARAMETER的方法问题,另一个你注意一下SQL语句中的参数,直接用?就可以了
string updsql = "update " + _curolefield.DataSetName + " set " + _curolefield.FieldName
+ "=? where " + _curolefield.MasteridField + "=" + curid.ToString();
OleDbCommand cmd = new OleDbCommand(updsql, pros.dataconn);
OleDbParameter imgvalue = new OleDbParameter();
imgvalue.ParameterName = "@imgvalue";
imgvalue.OleDbType = OleDbType.Binary;
imgvalue.Value = PhotoArray;
cmd.Parameters.Add(imgvalue);
cmd.ExecuteNonQuery();
 
后退
顶部