2017-06-15 79 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文は間だけあなたのTableScheme示されていない方法GetTableSchemeFromType()によって生成された(、BASKET_DESCRIPTION列を選択するが、私はType.GetProperties()を使ってすべてのプロパティを取得している)、結果セットには存在しない名前で他の列を要求しています。これはエラーがあなたに伝えようとしているものです。

したがって、SELECT *(または少なくともすべての関連する列)、または独自のORMの構築を中止して既存のORMを使用してください。

+0

正確な回答。ありがとう –

関連する問題