C# Dapper和access返回空值

C# Dapper和access返回空值,c#,ms-access,oledb,dapper,C#,Ms Access,Oledb,Dapper,我正在尝试使用dapper从Access数据库中提取数据。我定义了以下类来使用access数据库中需要读取的字段。然后我尝试使用下面的代码提取数据。当我运行此命令时,只有空格返回。空格数与数据表中的记录数匹配 我尝试使用一个较短的sql字符串来获得相同的结果 我找不到关于这个问题的任何信息,有人对此有什么想法吗 public class DLabResults { public int ResultsFolderNumber { get; set; } public int Re

我正在尝试使用dapper从Access数据库中提取数据。我定义了以下类来使用access数据库中需要读取的字段。然后我尝试使用下面的代码提取数据。当我运行此命令时,只有空格返回。空格数与数据表中的记录数匹配

我尝试使用一个较短的sql字符串来获得相同的结果

我找不到关于这个问题的任何信息,有人对此有什么想法吗

public class DLabResults
{
    public int ResultsFolderNumber { get; set; }
    public int Request { get; set; }
    public int Release { get; set; }
    public string Formulation { get; set; }
    public string Container { get; set; }
    public string Closure { get; set; }
    public string Shipper { get; set; }
    // public string Label_Back { get; set; }
    // public string Label_Front { get; set; }
    public string FilePath { get; set; }
}

public void LoadDapperDLabResults(List<DLabResults> items)
{
    string sql = "";
    //sql = "SELECT tblResults_Results.R_Project_Assignment, tblResults_Results.R_Project_Request, tblResults_Results.R_Project_Release, tblResults_Results.R_Formulation, tblResults_Results.R_Closure, tblResults_Results.R_Container, tblResults_Results.R_Shipper, '' AS Blank1, '' AS Blank2, tblResults_Results.R_Test_FullPath FROM tblResults_Results WHERE(((tblResults_Results.R_Formulation)Like '*' & [Formulation] & '*') AND ((tblResults_Results.R_Closure)Like '*' & [Closure] & '*') AND((tblResults_Results.R_Container)Like '*' & [Container] & '*') AND((tblResults_Results.R_Shipper)Like '*' & [Shipper] & '*')) ORDER BY tblResults_Results.R_Project_Assignment, tblResults_Results.R_Project_Request, tblResults_Results.R_Project_Release;";
    sql = "SELECT * FROM tblResults_Results";
    using (OleDbConnection connection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\DavidsoJ\\Desktop\\Fixed Push Workbooks\\Redesigned Databases\\Development Lab Results Database.accdb"))
    {
        //var TM2 = connection.Query<DLabResults>(sql).ToList();
        List<DLabResults> TM2 = connection.Query<DLabResults>(sql).ToList();
        //add items to employess    
        if (items == null || items.Count < 1)
        {
        }
        else
        {
            TM2.AddRange(items);
        }
        dataGridView1.DataSource = TM2;
    }
}

SQL查询中的列名似乎与所需对象模型DLabResults的属性不匹配

更新查询返回的列名以匹配对象

选择tblResults\u Results.R\u Project\u Request作为请求 /*, ... 为简洁起见,删除了代码*/ 来自tblResults\u结果 或者更新DLabResults属性名称以匹配查询返回的列名

public class DLabResults {

    public int R_Project_Request{ get; set; }

    //... code removed for brevity
}

无论哪种方式,使用dapper时,列名都需要映射到对象成员,以便dapper填充它们。

空白是什么意思?对象没有填充属性或只是一个null集合?长sql中的列名似乎与所需对象模型的属性不匹配。所谓空白,我的意思是在datagridview中,数据返回为0 0 0 blank blank等。其中空白表示没有任何内容。我将尝试更改对象模型字段名。当我将其更改为与字段名完全匹配时,对象模型的属性似乎是关键。谢谢@JRDNLAND另一个选项是更改查询以重命名列,如下所示:选择UglyTableName作为NicePropertyName。。。