blob类型数据存储问题,高手进!!
我数据库字段类型为blob,我把图片转换成二进制流存储到数据库中,但是怎么总报:值不在预期范围内呢!代码如下:
FileStream fs = new FileStream(file_name, FileMode.Open, FileAccess.Read,FileShare.Read);
byte[] MyData = new byte[fs.Length];
fs.Read(MyData, 0, MyData.Length);
ParamStruct[] ps = new ParamStruct[1];
ps[0].DataType = (System.Data.DbType)OracleDbType.Blob;
ps[0].Value = mydata;
ps[0].ParamName = "mydata";
DataAccess da = new DataAccess();
int flag = 0;
string sql = "insert into pic_table(table_id,pic) values ( 1, :mydata)";
flag = da.ExecuteNoQuery(sql,ps);
总是报错,真是无奈了,请高手指点!谢谢啦!! --------------------编程问答-------------------- 有没有高手阿!等待答案! --------------------编程问答-------------------- FileStream fs = new FileStream(file_name, FileMode.Open, FileAccess.Read,FileShare.Read);
byte[] MyData = new byte[fs.Length];
fs.Read(MyData, 0, MyData.Length);
fs.Close(); --------------------编程问答-------------------- 你的ParamStruc是一个什么样的对像,怎么操作Oracle数据库用Syste.Data.DBType,按道理应该是System.Data.OracleClient.OracleType
System.Data.OracleClient.OracleParameter[] para = new System.Data.OracleClient.OracleParameter[1];
para[0]=new System.Data.OracleClient.OracleParameter();
para[0].DbType= System.Data.OracleClient.OracleType.Blob;
--------------------编程问答-------------------- 奥,我加了fs.Close();也不可以,后来放在后边了,没拷进来。
--------------------编程问答-------------------- 之所以用ParamStruc,是因为ExecuteNoQuery方法里的参数是ExecuteNoQuery (String sql,ParamStruct[] ParameterArray),所以我用ParamStruc。
--------------------编程问答-------------------- op.Value = LOG_LEVEL;
op.ParameterName = "LOG_LEVEL";
op.OracleType = OracleType.Blob;
不要设置op.DbType,参数会自动帮你转化,Blob比较特殊,对应op.DbType是byte[]
参考FortuneBase
N_GDS_DIARYINFO_Edit.aspx.cs
参考地址www.cnblogs.com/mail-ricklee
补充:.NET技术 , C#