我在SQL Server 2008中名为contents
的表中有一个名为File
的列。content
列的数据类型为varbinary(MAX)
。我有一个XML文件,我需要使用c#.net 3.5生成二进制内容。
文件的名称是Test.XML
,我需要在名为Test.txt
的文件中生成其内容。然后我可以编写更新脚本来设置其内容。
答案 0 :(得分:1)
打开文件,转换为字节数组,然后将字节数组粘贴到db中的varbinary字段中:
string xml = File.ReadAllText("text.xml");
byte[] bytes = Encoding.ASCII.GetBytes(xml);
// put bytes into db
的更新:强> 的
如果你真的希望它作为0和1的字符串表示 - 在我看来毫无意义,你只需要遍历字节数组并将每个字节转换为基数2二进制并将所述值添加到字符串构建器对象像这样:
string xml = File.ReadAllText("text.xml");
byte[] bytes = Encoding.ASCII.GetBytes(xml);
StringBuilder sb = new StringBuilder();
foreach (byte b in bytes)
{
sb.Append(Convert.ToString(b, 2));
}
File.WriteAllText("test2.txt", sb.ToString());
我不希望任何人因为这个看似愚蠢的答案而投票让我失望 - 看下面的评论,这就是他所说的。
的更新:强> 的
要将字节数组转换为十六进制,请执行以下操作:
string xml = File.ReadAllText("text.xml");
byte[] bytes = Encoding.ASCII.GetBytes(xml);
StringBuilder sb = new StringBuilder();
foreach (byte b in bytes)
{
sb.AppendFormat("{0:x2}", b);
}
File.WriteAllText("test2.txt", sb.ToString());