我昨天问的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
今天继续关于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
----------------------^^
也就是说我得一模一样的取出我放进binary字段存储的东西——字符串'0x9876543210.....'
然后组串执行插入语句,实现把内容转到另外的表
sqlrd(0)表示name字段的,sqlrd(1)表示passwd字段(binary型)
呵呵
MessageBox.Show(ds.Tables[0].Rows[0][1].ToString(), "Content");这个语句是别人写的,意图类似我的MessageBox.Show语句意图,就是对话框显示binary字段里面存储的字符串值