【问题标题】:Adding a Byte[] to a datarow将 Byte[] 添加到数据行
【发布时间】:2011-03-25 12:47:44
【问题描述】:

我正在尝试编写一个返回数据读取器的测试,其中一列是字节 []。 我想我可以创建一个数据表并从中创建一个阅读器。

var cboTable = new DataTable("CBOTable");
var colValue = new SqlBinary(ASCII.GetBytes("Hello This is test"));

cboTable.Columns.Add("ByteArrayColumn");
cboTable.Rows.Add(colValue);

var reader= cboTable.CreateDataReader();

问题是当我将colValue 添加到数据行而不是将其添加为byte[] 时,它会将其添加到行中,因为它是"SqlBinary(18)" 的字符串表示形式。

我的问题是如何将实际的 byte[] 添加到我的数据行中

【问题讨论】:

    标签: .net sql datatable bytearray datarow


    【解决方案1】:

    根据MSDN

    如果您以编程方式创建 DataTable,则必须首先通过将 DataColumn 对象添加到 DataColumnCollection(通过 Columns 属性访问)来定义其架构。有关添加 DataColumn 对象的详细信息,请参阅向 DataTable 添加列 (ADO.NET)。

    通过编写cboTable.Columns.Add("ByteArrayColumn");,您已经定义了一个列名,但没有给它一个类型,所以它默认为一个“字符串”列。您应该按照文档中的示例,以便在将数据添加到表之前创建表架构。

    【讨论】:

    • cboTable.Columns.Add("ByteArrayProp",typeof(SqlBinary));是正确的方法。
    猜你喜欢
    • 1970-01-01
    • 2023-04-02
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    • 2021-05-13
    • 1970-01-01
    相关资源
    最近更新 更多