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

标签 c# .net

我正在尝试使用 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);
    } 
}

最佳答案

byte.Parse 将尝试解析一个单个 字节。你试过只转换吗?

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

如果失败,它至少应该向您显示DataRow实际 的类型。希望它是某种可以相当容易地转换为 byte[] 的类型。

关于c# - 如何将二进制转换为字节并在c#中作为文件写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5829815/

相关文章:

.net - 获取 asp.NET MVC 中的当前用户,以便我可以检查在用户控件中要执行的操作

c# - MediatR 不处理逆变通知

.net - 确定是否安装了 .NET 3.5 的最佳方法

c# - 使用 C# 从 Visual Fox Pro 数据库中读取数据

c# - 按字段对数据表进行排序

c# - MvxAppCompatDialogFragment 类中缺少 EnsureBindingContextSet 方法

c# - 可以在 C# 中重写静态方法吗?

c# - 局部变量 C#

c# - 换色器功能的堆栈溢出错误

javascript - 如何在 asp .net 中完成下载后打开下载的 excel 文件