当前位置:  开发笔记 > 编程语言 > 正文

如何将二进制转换为字节并在c#中写为文件

如何解决《如何将二进制转换为字节并在c#中写为文件》经验,为你挑选了1个好方法。

我试图从数据库中读取二进制文件,并使用c#在本地磁盘中写入文件.

使用下面的代码......但是这行有问题: byte[] fileAsByte = byte.Parse(row["Blob"]);

public static void ReadBlob()
{ 
    int icount = 0;
    string FileName;
    SqlConnection Mycon = new SqlConnection(Con);
    Mycon.Open();
    string queryString = "select * from " + TblName;
    SqlDataAdapter adapter = new SqlDataAdapter(queryString, Mycon);

    DataTable dtBlob = new DataTable();
    adapter.Fill(dtBlob);


    foreach (DataRow row in dtBlob.Rows)
    {
        byte[] fileAsByte = byte.Parse(row["Blob"]);
        FileName = FilePath + TblName + row["BlobId"].ToString() + FileType;

        WriteBlob(fileAsByte, FileName);
    }

    Mycon.Close();
}

public static void WriteBlob(byte[] buff, string fileName)
{
    try
    {
        FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.ReadWrite);
        BinaryWriter bw = new BinaryWriter(fs);
        bw.Write(buff);
        bw.Close(); 
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    } 
}

Jon Skeet.. 5

byte.Parse将尝试解析单个字节.你试过刚刚投射吗?

byte[] fileAsByte = (byte[]) row["Blob"];

如果失败,它至少应该表现出你是什么类型的实际DataRow.希望它是一种合理易于转换的类型byte[].



1> Jon Skeet..:

byte.Parse将尝试解析单个字节.你试过刚刚投射吗?

byte[] fileAsByte = (byte[]) row["Blob"];

如果失败,它至少应该表现出你是什么类型的实际DataRow.希望它是一种合理易于转换的类型byte[].

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有