问题描述
在C#里怎么样将一个二进制文件存到数据库里,然后再取出来?
解决方案
解决方案二:
以Access为例:将字段设置为OLE对象.然后:privatevoidSaveFile(){Form1frm=newForm1();FileStreamfilestream=newFileStream(Application.StartupPath+"\a.txt",FileMode.Open,FileAccess.Read);BinaryReaderfilerd=newBinaryReader(filestream,Encoding.Default);byte[]filebyte=newbyte[filestream.Length];filerd.Read(filebyte,0,(int)filestream.Length);frm.OpenConn();OleDbCommandcomm=newOleDbCommand("insertintofile(id,file)Values(@fid,@file)",frm.dbconn);comm.Parameters.AddWithValue("@fid","0001");comm.Parameters.AddWithValue("@file",DBNull.Value);comm.Parameters["@file"].Value=filebyte;comm.ExecuteNonQuery();}privatevoidReadFile(){Form1frm=newForm1();frm.OpenConn();OleDbCommandcomm=newOleDbCommand("select*fromfile",frm.dbconn);OleDbDataAdapterda=newOleDbDataAdapter(comm);DataSetds=newDataSet();da.Fill(ds);byte[]filebyte=(byte[])ds.Tables[0].Rows[0]["File"];//System.Text.Encodingmycode=newSystem.Text.Encoding();this.richTextBox1.AppendText(Encoding.Default.GetString(filebyte));}
解决方案三:
我打开数据库(dconn,OpenConn();)已经在form1中定义了.这些地方换成你自己的代吗,测试通过.
解决方案四:
我用的时vs2003平台,SQL2000数据库,想把图片显示到image控件中,麻烦你了。
解决方案五:
搞了半天,不是文件是图片.首先将字段改为image,
和上面的大致相同.privatevoidSaveFile(){Form1frm=newForm1();FileStreamfilestream=newFileStream(Application.StartupPath+"\a.bmp",FileMode.Open,FileAccess.Read);byte[]filebyte=newbyte[filestream.Length];filerd.Read(filebyte,0,(int)filestream.Length);frm.OpenConn();SqlCommandcomm=newOleDbCommand("insertintofile(id,file)Values(@fid,@file)",frm.dbconn);comm.Parameters.AddWithValue("@fid","0001");comm.Parameters.AddWithValue("@file",DBNull.Value);comm.Parameters["@file"].Value=filebyte;comm.ExecuteNonQuery();}privatevoidReadFile(){Form1frm=newForm1();frm.OpenConn();SqlCommandcomm=newOleDbCommand("select*fromfile",frm.dbconn);SqlDataAdapterda=newOleDbDataAdapter(comm);DataSetds=newDataSet();da.Fill(ds);byte[]filebyte=(byte[])ds.Tables[0].Rows[0]["File"];MemoryStreammystream=newMemoryStream(filebyte);this.pictureBox1.Image=Image.FromStream(mystream);}
解决方案六:
2003平台将AddWithValue改成Add;
解决方案七:
谢谢!
解决方案八:
接分
解决方案九:
引用4楼baihe_591的回复:
搞了半天,不是文件是图片.C#code首先将字段改为image,和上面的大致相同.C#codeprivatevoidSaveFile(){Form1frm=newForm1();FileStreamfilestream=newFileStream(Application.StartupPath+"\a.bmp",FileMode.Open,FileAccess.Read);byte[]filebyte=newbyte[filestream.Length];filerd.Read(filebyte,0,(int)files…