Stream fileDataStream = this.FileUpload1.PostedFile.InputStream; //得到文件大小
int fileLength = this.FileUpload1.PostedFile.ContentLength;
//创建数组
byte[] fileData = new byte[fileLength];
string strsql = string.Format("insert into pic (img) values({0})", fileData); 当执行strsql 这句的时候执行不了请问各位是哪里不对,再问一下读取的方法.oracle和SQL2000的读写方法是是否和ACCESS的一样.
请高手指导,先谢了!!
int fileLength = this.FileUpload1.PostedFile.ContentLength;
//创建数组
byte[] fileData = new byte[fileLength];
string strsql = string.Format("insert into pic (img) values({0})", fileData); 当执行strsql 这句的时候执行不了请问各位是哪里不对,再问一下读取的方法.oracle和SQL2000的读写方法是是否和ACCESS的一样.
请高手指导,先谢了!!
Stream fileDataStream = this.FileUpload1.PostedFile.InputStream;
byte[] fileData = new byte[fileDataStream.Length];
fileDataStream.Read(fileData, 0, bytes.Length);//读取流内容
fileDataStream.Seek(0, SeekOrigin.Begin);//设置流的位置
string strsql = string.Format("insert into pic (img) values({0})", fileData);
Stream fileDataStream = this.FileUpload1.PostedFile.InputStream;
byte[] fileData = new byte[fileDataStream.Length];
fileDataStream.Read(fileData, 0, fileData.Length);//读取流内容
fileDataStream.Seek(0, SeekOrigin.Begin);//设置流的位置
string strsql = string.Format("insert into pic (img) values({0})", fileData);
上面的刚刚错了个变量
不太一样。
SQL2000和ACCESS类似,Oracle的SQL语法和SQLSERVER、ACCESS不同。
Stream fileDataStream = this.FileUpload1.PostedFile.InputStream;
byte[] fileData = new byte[fileDataStream.Length];
fileDataStream.Read(fileData, 0, fileData.Length);//读取流内容
fileDataStream.Seek(0, SeekOrigin.Begin);//设置流的位置
上面代码图片二进制流获取成功下面是在Access数据库中保存二进制流,需要把保存二进制流字段设置为“OLE对象”类型string strConn = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source = {0}", Application.StartupPath + "\\Test.mdb");
OleDbConnection Conn = new OleDbConnection(strConn);
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = Conn;
cmd.CommandText = "insert into pic (img) values(@img)";
cmd.Parameters.Add("@img", OleDbType.Binary, Convert.ToInt32(fileData.Length)).Value = fileData;
Conn.Open();
cmd.ExecuteNonQuery();
cmd.Dispose();
Conn.Close();
Conn.Dispose();