标题:[求助]找了好多关于文件添加到数据库的代码,都是不行!
只看楼主
bigmath
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-8-18
 问题点数:0 回复次数:16 
[求助]找了好多关于文件添加到数据库的代码,都是不行!

我在做一个 窗体 上面有2个BUTTON 一个TEXTBOX
点击后BUTTON 1 选择文件调用对话框
选择文件后 textbox内显示文件地址
点BUTTON 2添加将文件(*.doc)添加到数据库中!!!



请问需要做那些工作才能完成此项功能???

有没有QQ交流群?

[此贴子已经被作者于2007-8-20 8:51:39编辑过]

搜索更多相关主题的帖子: 数据库 文件 BUTTON 代码 对话框 
2007-08-20 08:37
师妃暄
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:805
专家分:107
注 册:2006-3-1
得分:0 
你是想怎么样把文件添加到数据库?

是把.doc里面的文字信息都保存在数据库里?还是把它的路径保存进去?

有实力才会有魅力 实力来自坚持不懈的努力
2007-08-20 09:14
bigmath
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-8-18
得分:0 

是把.doc里面的文字信息都保存在数据库里!
就是把WORD文档存在数据库中的表项中!

2007-08-20 10:28
bigmath
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-8-18
得分:0 
我的QQ:9204497
2007-08-20 10:31
师妃暄
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:805
专家分:107
注 册:2006-3-1
得分:0 

不难的

首先new一个OpenFileDialog对象.这个没问题吧?

关键是对文件流的操作

现用Byte[]数组吧流按一定长度读出来

然后一起保存到string或者StreamBuilder中

然后操作数据库,吧这个string写进去就不难了吧?


有实力才会有魅力 实力来自坚持不懈的努力
2007-08-20 10:57
bigmath
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-8-18
得分:0 

看了一段代码:

//保存文件到SQL Server数据库中
FileInfo fi=new FileInfo(fileName);
FileStream fs=fi.OpenRead();
byte[] bytes=new byte[fs.Length];
fs.Read(bytes,0,Convert.ToInt32(fs.Length));
SqlCommand cm=new SqlCommand();
cm.Connection=cn;
cm.CommandType=CommandType.Text;
if(cn.State==0) cn.Open();
cm.CommandText="insert into "+tableName+"("+fieldName+") values(@file)";
SqlParameter spFile=new SqlParameter("@file",SqlDbType.Image);
spFile.Value=bytes;
cm.Parameters.Add(spFile);
cm.ExecuteNonQuery()


其中 cm.Connection=cn;
中的cn不明白是什么意思!
还有 cm.CommandText="insert into "+tableName+"("+fieldName+") values(@file)";
中的 " 符号 划分的定义!

2007-08-20 13:05
bigmath
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-8-18
得分:0 
是不是这个:

DataSet ds = new DataSet();
SqlConnection cn = new SqlConnection("Data Source=.;User ID=sa;Password=123;Initial Catalog=data");
2007-08-20 13:12
bigmath
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-8-18
得分:0 
cm.CommandText="insert into "+tableName+"("+fieldName+") values(@file)";
SqlParameter spFile=new SqlParameter("@file",SqlDbType.Image);
spFile.Value=bytes;
cm.Parameters.Add(spFile);
cm.ExecuteNonQuery()


这段代码不懂什么意思!
尤其是
cm.CommandText="insert into "+tableName+"("+fieldName+") values(@file)";
SqlParameter spFile=new SqlParameter("@file",SqlDbType.Image);
这两句!
请问是具体代表什么意思!
2007-08-20 16:42
师妃暄
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:805
专家分:107
注 册:2006-3-1
得分:0 
@file是定义了一个临时变量

这是为了防止SQL注入漏洞而采取的一个措施..以前在values后我们直接写上值

现在我们用一个临时变量去占位,然后用
SqlParameter spFile=new SqlParameter("@file",SqlDbType.Image);
spFile.Value=bytes;

这两句还可以合并成一句
cmd.SqlParameter.Add("@file",SqlDbType.Image).Values=bytes;


去给@file赋值.

懂了吗?

[此贴子已经被作者于2007-8-20 17:16:22编辑过]


有实力才会有魅力 实力来自坚持不懈的努力
2007-08-20 17:13
bigmath
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-8-18
得分:0 

明白了
谢谢你!

2007-08-20 18:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-163978-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.233595 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved