5
我想使用dapper查詢dbf文件。在我的文件example.dbf我有兩列:Dapper:無法從dbf解析字符串(錯誤解析列)
- 值 - 類型NUMERIC
- 名稱 - 類型CHARACTER
我寫的類ExampleDbf
class ExampleDbf
{
public int Value { get; set; }
public string Name { get; set; }
}
現在我想寫兩個簡單查詢
var listOne = connection.Query<ExampleDbf>("SELECT value FROM Example");
var listTwo = connection.Query<ExampleDbf>("SELECT name, value FROM Example");
那麼listOne都OK,但是當我執行listTwo我有以下System.Data.DataException:
Additional information: Error parsing column 0 (name=System.Byte[] - Object)
當我使用標準的DataReader我必須寫類似的東西
example.name = System.Text.Encoding.ASCII.GetString((byte[])reader["name"]).Trim();
當然我可能喜歡寫東西這樣的:
class ExampleDbf2
{
public int Value { get; set; }
public byte[] Name { get; set; }
public string StringName
{
get
{
return System.Text.Encoding.ASCII.GetString((byte[])Name).Trim();
}
}
}
所以現在它的工作原理
var listTwo = connection.Query<ExampleDbf2>("SELECT name, value FROM Example");
但是這個解決方案非常難看,也許有人有更好的解決方案。
來自DB的數據是字符數據;小巧玲瓏從來不會爲你做出編碼決定:這個問題太不明瞭......如果你想要的話,你可以使用墊片屬性...... –