C#应用程序如何把上传的附件存到数据库中去 如何把上传的附件转换后 ,存放到数据库里去. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 转自:http://forums.microsoft.com/china/ShowPost.aspx?PostID=2992275&SiteID=15基本思路就是把文件内容读到byte[]数组中,然后像通常的数据库操作那样存到数据库中Image类型的字段中。取得时候,再把数据库中读到的字段值转换成byte[]数组,然后写到文件中。例子如下,在我机器上测试通过(VS2008 + Sql Server Express,WinForm程序):Code Snippet//保存,不仅是exe文件,所有的类型的文件操作都一样,我是保存一个txt文件private void button1_Click(object sender, EventArgs e) { byte[] buffer; buffer = File.ReadAllBytes("readme.txt"); //读取文件内容 //创建连接 SqlConnection connect = new SqlConnection(@"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=BSPlatform2008;Data Source=.\SqlExpress"); SqlCommand cmd = connect.CreateCommand(); cmd.CommandText = "INSERT INTO Tmp (FileContent) VALUES (@FileContent)"; //FileContent字段是Image类型 cmd.Parameters.Add("@FileContent", SqlDbType.Image); cmd.Parameters["@FileContent"].Value = buffer; //接受byte[]类型的值 connect.Open(); cmd.ExecuteNonQuery(); connect.Close(); }代你参考 Code Snippet//读取恢复private void button2_Click(object sender, EventArgs e) { byte[] buffer; SqlConnection connect = new SqlConnection(@"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=BSPlatform2008;Data Source=.\SqlExpress"); SqlCommand cmd = connect.CreateCommand(); cmd.CommandText = "SELECT TOP 1 FileContent FROM Tmp"; connect.Open(); buffer = (byte[])cmd.ExecuteScalar(); //从数据库中取到的Image类型的字段的值,转换成byte[]类型 File.WriteAllBytes("Readme2.txt", buffer); } 一般数据库都可以直接存储byte[]类型的,你只要在程序中把文件转为byte[]就可以了。 看附件文件类型,图片,EXCEL等都可保存到数据库。其他格式最好保存路径 pdf,doc这些可以保存在数据库不? 嗯对存储路径就可以了,要么就写byte流的形式. TO tonyepaper :为什么在读取的时候没有反应呢? 照片弄成byte流还可以,其它文件的话,怕会出错 文件类型没什么关系的,参考一下blog.csdn.net/yistudio 可以保存,都是以byte[]方式存储,文件类型没有限制。 txt文件可以直接将文件内容存储到数据库中一般的文件可以以二进制存储在数据库中,用FileStream上传和读取 最好还是存图片路径到数据路,而不是图片内容,如果是图片内容,则使用 byte 我也知道,但我们这里要求写到数据库里,我也没有办法哈.那位大侠给一个例子哈.我只能读取.txt的文件,其他都读不出来..郁闷的很. 请各种高手帮忙做个计算器.... 对象转换问题 最简单的if语句出错了,不知道为什么 初级问题-如何禁止别人调用我的dll 一个新手的问题,超简单的! 求助:一个实体类型转换 帮我看一下,兄弟姐妹们!(在线等) 各位,使用手机数据线开发短信需要使用数据线的驱动吗? DataGrid中,如何使用"数据格式设置表达式"将一个字符串截短? 大师,如何获取路由器的动态IP地址,这个地址是由ISP动态分配的。 C# 应用程序如何实现上传附件 发现一个关于委托的问题,还请大侠解释一下..
基本思路就是把文件内容读到byte[]数组中,然后像通常的数据库操作那样存到数据库中Image类型的字段中。取得时候,再把数据库中读到的字段值转换成byte[]数组,然后写到文件中。例子如下,在我机器上测试通过(VS2008 + Sql Server Express,WinForm程序):
Code Snippet//保存,不仅是exe文件,所有的类型的文件操作都一样,我是保存一个txt文件private void button1_Click(object sender, EventArgs e)
{
byte[] buffer;
buffer = File.ReadAllBytes("readme.txt"); //读取文件内容 //创建连接
SqlConnection connect = new SqlConnection(@"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=BSPlatform2008;Data Source=.\SqlExpress");
SqlCommand cmd = connect.CreateCommand();
cmd.CommandText = "INSERT INTO Tmp (FileContent) VALUES (@FileContent)"; //FileContent字段是Image类型
cmd.Parameters.Add("@FileContent", SqlDbType.Image);
cmd.Parameters["@FileContent"].Value = buffer; //接受byte[]类型的值
connect.Open();
cmd.ExecuteNonQuery();
connect.Close();
}
代你参考
Code Snippet//读取恢复private void button2_Click(object sender, EventArgs e)
{
byte[] buffer;
SqlConnection connect = new SqlConnection(@"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=BSPlatform2008;Data Source=.\SqlExpress");
SqlCommand cmd = connect.CreateCommand();
cmd.CommandText = "SELECT TOP 1 FileContent FROM Tmp";
connect.Open();
buffer = (byte[])cmd.ExecuteScalar(); //从数据库中取到的Image类型的字段的值,转换成byte[]类型 File.WriteAllBytes("Readme2.txt", buffer); }
为什么在读取的时候没有反应呢?
一般的文件可以以二进制存储在数据库中,用FileStream上传和读取
我也知道,但我们这里要求写到数据库里,我也没有办法哈.那位大侠给一个例子哈.我只能读取.txt的文件,其他都读不出来..郁闷的很.