我在binary的字段存储了用户的密码MD5加密串,我在SQL的查询分析器里面查询的结果就是0x9876543210.......这种格式的东西
可是我用vb.net写的代码就始终取不出那字段的加密串,我希望能一模一样的取出0x9876543210....这种字符串出来
sql = "select name,cast(passwd as varchar) from users"
SqlCmd1.CommandText = sql
SqlRd = SqlCmd1.ExecuteReader()
SqlRd.Read() MessageBox.Show(SqlRd(1))passwd就是保存用户密码MD5加密串的字段
messagebox出来的是乱码,如同把passwd从binary字段修改为varchar在数据库里面看到的效果
请问如何实现正确提取加密串0x9876543210....出来,谢谢!
不限制具体代码,C#代码,VB.NET代码均可
可是我用vb.net写的代码就始终取不出那字段的加密串,我希望能一模一样的取出0x9876543210....这种字符串出来
sql = "select name,cast(passwd as varchar) from users"
SqlCmd1.CommandText = sql
SqlRd = SqlCmd1.ExecuteReader()
SqlRd.Read() MessageBox.Show(SqlRd(1))passwd就是保存用户密码MD5加密串的字段
messagebox出来的是乱码,如同把passwd从binary字段修改为varchar在数据库里面看到的效果
请问如何实现正确提取加密串0x9876543210....出来,谢谢!
不限制具体代码,C#代码,VB.NET代码均可
应该直接将字段改成varchar型,再保存的数据读出来就没问题了如果实在要这样读,你读出来后用
encoding.ascii.getstring("")
SqlDataAdapter da = new SqlDataAdapter("Select * From MyImages", con);
SqlCommandBuilder MyCB = new SqlCommandBuilder(da);
DataSet ds = new DataSet("MyImages");byte[] MyData= new byte[0];
da.Fill(ds, "MyImages");
DataRow myRow = ds.Tables["MyImages"].Rows[0];
MyData =(byte[])myRow["imgField"];string v = UnicodeEncoding.Default.GetString(MyData);
直接MyData.ToString()就行了.
SqlCmd1.CommandText = sql
SqlRd = SqlCmd1.ExecuteReader()
SqlRd.Read() strint s = BitConverter.ToString((byte[])(SqlRd(1)));
s = "0x" + s.Replace('-', '');
MessageBox.Show(s);
s = "0x" + s.Replace("-", "");
s = "0x" + s.Replace("-", "");
我刚测试了下,messagebox出来的文字是system.byte[]
记录是别人的java程序调用存储过程写入的,我也不知道它采用什么编码写的,如何解码一直灭有找到好的办法……郁闷中,难道只能猜测尝试?
而不是 "select name,cast(passwd as varchar) from users" sql = "select name, passwd from users"
SqlCmd1.CommandText = sql
SqlRd = SqlCmd1.ExecuteReader()
SqlRd.Read() string s = BitConverter.ToString((byte[])(SqlRd(1)));
s = "0x" + s.Replace("-", "");
MessageBox.Show(s);
里面就是用的如下SQL
sql = "select name,cast(passwd as varchar) from users"然后直接就出来了0x987654321....根本就不需要转换了
非常类似rainxy2000 兄弟说的MYDATA.TOstring()
这样子就该出来了的就是不知道为什么现在死活就不成了呢