我现在要用一个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表中,不需要把这个二进制文件读出来。
高手帮忙看看噢。解决了就结贴。。

解决方案 »

  1.   

    补充一下,gs_Media表中的doc也是image类型的。
    我考虑过用SQL直接插入,如:insert into gs_Media (docname,doc) select docname,doc from tablename where id='adf'
    但是这两个表不在同一个库,而且库名是变动的。
      

  2.   

    没有必要使用ToString,且这里使用是错误的,直接使用如下:param2.Add(   new   ParamInfo( "@p1 ",dtPtSub.Rows[0][0])); 
    param2.Add(   new   ParamInfo( "@p2 ",dtPtSub.Rows[0][1])); 
      

  3.   

    byte[] b = (byte[])dtPtSub.Rows[0][0]
      

  4.   

    然后
    new SqlParameter("@P1",b)
      

  5.   

    还有一个办法,是用DBCC把数据库和数据库连接
    然后就可以直接insert....select...了