[英]System.InvalidCastException when getting SQL Server ROWVERSION into System.Data.Linq.Binary property
I am using IDataReader to select all from SQL Server DB which contain a Version column with Data Type ROWVERSION Here is My code: 我正在使用IDataReader从SQL Server DB中选择所有数据库,其中包含具有数据类型ROWVERSION的Version列,这是我的代码:
ItemDetail.cs ItemDetail.cs
private Binary _version;
public Binary Version
{
get { return _version; }
set { _version = value; }
}
public ItemDetails(int ItemID, string AddedBy, DateTime AddingDate,
string LastUpdateBy, DateTime LastUpdateDate,Binary Version)
{
this.ItemID = ItemID;
this.AddedBy = AddedBy;
this.AddingDate = AddingDate;
this.LastUpdateBy = LastUpdateBy;
this.LastUpdateDate = LastUpdateDate;
this.Version = Version;
}
ItemProvider.cs ItemProvider.cs
protected virtual ItemDetails GetItemFromReader(IDataReader Reader)
{
return new ItemDetails(
(int)Reader["ItemID"],
Reader["AddedBy"].ToString(),
(DateTime)Reader["AddingDate"],
Reader["LastUpdateBy"].ToString(),
(DateTime)Reader["LastUpdateDate"],
(byte[])Reader["Version"]);
}
protected virtual List<ItemDetails> GetItemCollectionFromReader(IDataReader Reader)
{
List<ItemDetails> Items = new List<ItemDetails>();
while (Reader.Read())
{
Items.Add(GetItemFromReader(Reader));
}
return Items;
}
I got 我有
System.InvalidCastException in GetItemFromReader(IDataReader Reader) at (byte[])Reader["Version"])
GetItemFromReader(IDataReader Reader)中位于(byte [])Reader [“ Version”])的System.InvalidCastException
How can I fix this? 我怎样才能解决这个问题? Thank You
谢谢
After looking through many posts here and there I found the solution which is: 在各处浏览许多帖子后,我找到了解决方案:
ItemProvider.cs replace: ItemProvider.cs替换为:
(byte[])Reader["Version"])
with: 有:
new Binary((byte[])Reader["Version"])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.