从数据库中读取二进制文件。

pt1314917 2007-11-06 03:58:30
我现在要用一个SQL语句select docname,doc from tablename where id='adf'类似这样的。
返回的是datatable,我现在需要将查询出来的文件插入另外一张表,用以下语句。
dasql = "insert into gs_Media (docname,doc) values (@p1,@p2)";
#region 添加照片信息导入参数
ArrayList param2 = new ArrayList();
param2.Add( new ParamInfo("@p1",dtPtSub.Rows[0][0].ToString()==""?"":dtPtSub.Rows[0][0].ToString()));
param2.Add( new ParamInfo("@p2",dtPtSub.Rows[0][1].ToString()));

但是目前的问题是,这里的doc在数据库中是image类型的,dtPtSub.Rows[0][1].ToString()这样取是会报错的。
我只是想将它取出来,赋给@p2这个变量。插入到gs_Media表中,不需要把这个二进制文件读出来。
高手帮忙看看噢。解决了就结贴。。
...全文
136 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
pt1314917 2007-11-06
  • 打赏
  • 举报
回复
没有对的答案。不过自己弄出来了。算了。结帖。。
WNASP 2007-11-06
  • 打赏
  • 举报
回复
还有一个办法,是用DBCC把数据库和数据库连接
然后就可以直接insert....select...了
WNASP 2007-11-06
  • 打赏
  • 举报
回复
然后
new SqlParameter("@P1",b)
WNASP 2007-11-06
  • 打赏
  • 举报
回复
byte[] b = (byte[])dtPtSub.Rows[0][0]
pt1314917 2007-11-06
  • 打赏
  • 举报
回复
自己顶一下。。
北京的雾霾天 2007-11-06
  • 打赏
  • 举报
回复
没有必要使用ToString,且这里使用是错误的,直接使用如下:

param2.Add( new ParamInfo( "@p1 ",dtPtSub.Rows[0][0]));
param2.Add( new ParamInfo( "@p2 ",dtPtSub.Rows[0][1]));
pt1314917 2007-11-06
  • 打赏
  • 举报
回复
补充一下,gs_Media表中的doc也是image类型的。
我考虑过用SQL直接插入,如:insert into gs_Media (docname,doc) select docname,doc from tablename where id='adf'
但是这两个表不在同一个库,而且库名是变动的。。。。

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧