2017-06-15 24 views
0

在我的自定義代碼中執行簡單的select語句時出現以下錯誤。 找不到的結果指定列在MySQL中的結果中找不到指定的列

這裏是我的代碼 -

string queryBuilder="select BASKET_DESCRIPTION from MARKET_BASKET_REQUESTS order by BASKET_DESCRIPTION limit 1"; 
public T SelectSingle<T>(string queryBuilder) where T : new()//made new 
     { 
      T result = new T(); 
      TableScheme dbTable = GetTableSchemeFromType(typeof(T)); 
      IDataReader reader = ExecuteReader(queryBuilder); 
      result = ParseDataReaderToEntityListtttt<T>(reader,dbTable); 
      reader.Close(); 
      return result; 
     } 
     private T ParseDataReaderToEntityListtttt<T>(IDataReader reader, TableScheme dbTable) where T : new() 
     { 
      Type type = typeof(T); 
      T result = new T(); 
      while (reader.Read()) 
      { 
       T t = new T(); 
       foreach (var column in dbTable.Columns) 
       { 
        type.GetProperty(column.AssociatedPropertyName).SetValue(t, reader[column.ColumnName], null); 
       } 
       result = t; 
      } 
      return result; 
     } 
+0

GetTableSchemeFromType的代碼是什麼?哪一行代碼給你錯誤? –

回答

0

SELECT語句只選擇BASKET_DESCRIPTION列,而你TableScheme(這是由未示出的方法GetTableSchemeFromType()產生,但我想它使用Type.GetProperties()來獲取所有屬性)正在請求其他列的名稱,這些列不存在於結果集中,這是錯誤試圖告訴您的。

因此要麼SELECT *(或至少所有相關的列),或停止建立自己的ORM並使用現有的ORM。

+0

準確答案。謝謝 –

相關問題