关于BitConverter,想请教一下各位 本帖最后由 aorons 于 2010-09-03 01:59:12 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先重复我回答过的两句话:不是所有的byte[]都能换成有意义的字符串的。字符串是方便给人看得电脑一点都不在乎数据存成字符串或原始二进制。硬要把二进制转换成字符串,我不认为有实际意义(你能理解或编辑该贴中的‘物品’的‘字符串’数据?)硬要把人为转换的字符串塞给电脑作为原始数据,则更是个错误。dr["Items"]明明是个1920字节长的数组,存成byte[]就可以了。换成字符串,两个字符对一个byte,每个字符花费2个字节的空间,总共用了7680以上的字节,不是很浪费?要更新数据库,传入byte[]不是很直接?using(SqlConnection con = new SqlConnection("..."))using(SqlCommand cmd = new SqlCommand("update warehouse set items=@items",con)){ SqlParameter parameter = cmd.Parameters.Add("@items", SqlDbType.VarBinary); parameter.Value = new byte[]{0x12, 0x23, 0x34, 0x45}; con.Open(); int i = cmd.ExecuteNonQuery();} UPDATE warehouse set Items=cast(@items as varbinary(1920)) where AccountID=@accountid1920是不是应该是1980 保存的时候这样就可以了paramPwd = New SqlParameter("@Password", SqlDbType.Binary, 16)paramPwd.Value = hashedDataBytesobjCmd.Parameters.Add(paramPwd)参见http://dotnet.aspx.cc/article/1481d80a-f0fd-45e3-a822-94f5be8c8813/read.aspx 二进制字段必须是参数的形势更新或者插入,比如存储过程或者参数化SQL语句。 不能像普通char字段一样直接操作。command.Parameters.Add("@p", System.Data.SqlDbType.VarBinary);command.Parameters["@p"].Value = new byte[] { 1, 2, 3, 4 }; command.ExecuteNonQuery(); 请问C# 实现每次在输入用户名密码之后 保存用户信息 求助高手帮忙!!!非常感谢! C# 检索文件并返回路径 这是什么加密方式 大侠们帮忙找错... 有没有办法在子类的对象中屏蔽基类的一个事件 难道在用C#开发的程序真的不能在98系统中取出硬盘的物理序列号吗??????????? 如何获得一字符串里各个字符的ascll码? 线程中的方法遇到异常时,会被调用它的方法捕获到吗 请问7张盘的那个东东那里有的下 大家都用什么Exception采集控件,进来聊聊 原贴已结,没说明白,再发一次,关于 datetimepicker 问题
不是所有的byte[]都能换成有意义的字符串的。
字符串是方便给人看得电脑一点都不在乎数据存成字符串或原始二进制。
硬要把二进制转换成字符串,我不认为有实际意义(你能理解或编辑该贴中的‘物品’的‘字符串’数据?)
硬要把人为转换的字符串塞给电脑作为原始数据,则更是个错误。
dr["Items"]明明是个1920字节长的数组,存成byte[]就可以了。换成字符串,两个字符对一个byte,每个字符花费2个字节的空间,总共用了7680以上的字节,不是很浪费?要更新数据库,传入byte[]不是很直接?
using(SqlConnection con = new SqlConnection("..."))
using(SqlCommand cmd = new SqlCommand("update warehouse set items=@items",con))
{
SqlParameter parameter = cmd.Parameters.Add("@items", SqlDbType.VarBinary);
parameter.Value = new byte[]{0x12, 0x23, 0x34, 0x45}; con.Open();
int i = cmd.ExecuteNonQuery();
}
paramPwd = New SqlParameter("@Password", SqlDbType.Binary, 16)
paramPwd.Value = hashedDataBytes
objCmd.Parameters.Add(paramPwd)
参见
http://dotnet.aspx.cc/article/1481d80a-f0fd-45e3-a822-94f5be8c8813/read.aspx
不能像普通char字段一样直接操作。
command.Parameters.Add("@p", System.Data.SqlDbType.VarBinary);
command.Parameters["@p"].Value = new byte[] { 1, 2, 3, 4 };
command.ExecuteNonQuery();