簡體   English   中英

Dapper:無法解析dbf中的字符串(解析列時出錯)

[英]Dapper: Not able to parse string from dbf(Error parsing column)

我想使用dapper來查詢dbf文件。 在我的文件example.dbf中,我有兩列:

  1. 值 - 類型NUMERIC
  2. 名稱 - 類型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沒問題,但是當我執行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");

但這個解決方案非常難看,也許有人有更好的解決方案。

您始終可以返回動態,然后將其映射到對象並在對象初始化期間執行轉換操作。

var listTwo = connection.Query<dynamic>("SELECT name, value FROM Example")
    .Select(x => new ExampleDbf 
        { 
            Value = x.value,  
            Name = System.Text.Encoding.ASCII.GetString((byte[])x.name).Trim()
        }).ToList();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM