我昨天问的2个奇怪的问题,varchar字段的问题已经顺利解决了,再次感谢
今天继续关于binary的字段问题,我当时问大家确认了那cast(passwd as varchar)的查询方式是正确的,我在SQL的查询分析器里面查询的结果就是正确的加密串(0x9876543210.......这种格式的东西)
可是我用vb.net写的代码就始终取不出那字段的加密串,开始我还担心是程序代码的问题,我在csdn也查询了下,应该是代码灭有问题滴
继续附上数据库的地址http://www.ck819.com.cn/db.rar
        sql = "select name,cast(passwd as varchar) from users"
        SqlCmd1.CommandText = sql
        SqlRd = SqlCmd1.ExecuteReader()
        SqlRd.Read()        MessageBox.Show(SqlRd(1))
messagebox出来的是乱码,如同把passwd从binary字段修改为varchar在数据库里面看到的效果下面是转自CSDN的.NET版区的一个问答,和我的问题相似,以证明我的代码应该无误吧这是sqlserver 表:tb1 
          字段1:testid  [int]    IDENTITY (1,1) NOT null 
          字段2: testname [binary] (100) NOT null 
在以c#中我想在表tb1中存取数据: string sql = " insert into tb values (convert(binary(100), '" + str + "')) "; string sql = "select testid, convert(varchar, testname) as 'testname' from tb "; 
SqlDataAdapter sdr = new SqlDataAdapter(sql, sCon); 
DataSet ds = new DataSet(); 
sdr.Fill(ds); 
MessageBox.Show(ds.Tables[0].Rows[0][1].ToString(), "Content");
http://topic.csdn.net/u/20071005/19/b77c2498-96e4-4d6d-863d-c34521cb44d6.html

解决方案 »

  1.   

    MessageBox.Show(SqlRd(1))
    ----------------------^^
      

  2.   

    我是打算从这个表取出信息转到另外一个结构相同的表去
    也就是说我得一模一样的取出我放进binary字段存储的东西——字符串'0x9876543210.....'
    然后组串执行插入语句,实现把内容转到另外的表
      

  3.   

    MessageBox.Show(ds.Tables[0].Rows[0][1].ToString(), "Content");?
      

  4.   

    TO happyflystone 我的表就一个记录,SQL语句提取的就2个字段,我用sqlrd(1)是灭有错误的吧?
    sqlrd(0)表示name字段的,sqlrd(1)表示passwd字段(binary型)
    呵呵
      

  5.   

    TO aaron6 
    MessageBox.Show(ds.Tables[0].Rows[0][1].ToString(), "Content");这个语句是别人写的,意图类似我的MessageBox.Show语句意图,就是对话框显示binary字段里面存储的字符串值