我给了byte[]
存储在数据库中,
我从SQL获取DataTable
中的字节数组
这是我的DataTable
,System.byte []是我的图像(以字节为单位),存储在数据库中
现在我想将此DataTable
转换为列表
这是我当前的代码
var answerList = (from rw in dt.AsEnumerable()
select new RegistrationAnswers()
{
responseID = rw["responseID"].ToString() == string.Empty ? 0 : Convert.ToInt32(rw["responseID"].ToString()),
responseRegID = rw["responseRegID"].ToString() == string.Empty ? 0 : Convert.ToInt32(rw["responseRegID"].ToString()),
responseAnswer = rw["responseAnswer"].ToString(),
_ResponseDocument = rw["responseDocument"], //here i want to validate if rw["responseDocument"] is null or not and if this is not null then assign the byte[] data to _ResponseDocument
formID=Convert.ToInt32(rw["formID"])
}).ToList();
我将代码更新为
//At top
byte[] tempByteArray = new byte[0];
_responseDocument = Convert.IsDBNull((byte[])rw["responseDocument"]) == false ? tempByteArray : (byte[])rw["responseDocument"],
我遇到以下错误
“无法将类型为“ System.DBNull”的对象转换为类型为“ System.Byte []”。”
我想验证rw [“ responseDocument”]是否为null以及是否 这不是null,然后将byte []数据分配给_ResponseDocument
答案 0 :(得分:1)
尝试投射
rw["responseDocument"] == System.DBNull.Value ? new byte[0] : (byte[])rw["responseDocument"];
或
Convert.IsDBNull(rw["responseDocument"]) ? new byte[0] : (byte[])rw["responseDocument"];
答案 1 :(得分:0)
将数据从DataTable
放入list
我所做的是在方法中创建一个字节数组
byte[] tempByteArray = new byte[0];
在我的循环中做了这样的事情
_responseDocument = rw["responseDocument"].ToString() == "" ? tempByteArray : (byte[])rw["responseDocument"],