2017-12-23 48 views
2

私はdapperを使用して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; 
    } 
} 
+0

空白が何を意味していますか?プロパティが設定されていないオブジェクトまたはヌルのコレクション – Nkosi

+2

long SQLの列名が、目的のオブジェクトモデルのプロパティと一致しないようです。 – Nkosi

+0

空白DataGridviewでデータが返ってきたのは、ブランクブランクなどのブランクの場合は何もなかったということです。オブジェクトモデルのフィールド名を変更しようとします。 – jrdnoland

答えて

2

SQLクエリの列名が、目的のオブジェクトモデルDLabResultsのプロパティと一致していないようです。

どちらの列名を更新は、列名は、クエリ

public class DLabResults { 

    public int R_Project_Request{ get; set; } 

    //... code removed for brevity 
} 

いずれかの方法で、から返される一致するオブジェクト

SELECT tblResults_Results.R_Project_Request AS Request 
/*, ... code removed for brevity */ 
FROM tblResults_Results 

と一致OR DLabResultsプロパティ名を更新するには、クエリから返されますdapperを使用してカラム名をオブジェクトメンバーにマップする必要があります。

関連する問題