2016-08-25 1 views
0

У меня есть следующий метод, но он не заполняет datatable.ado.net не возвращает данные в SQL Встроенная функция

using (conn = new SqlConnection(Connection1)) 
{ 
    conn.Open(); 
    string query = "SELECT distinct left(RTRIM(PostalCode), 2),EntityID FROM Gen_Addresses"; 
    dt = new DataTable(); 
    ad = new SqlDataAdapter(query ,conn); 

    ad.Fill(dt); 
    checkedListBox1.DisplayMember = dt.Columns["PostalCode"].ColumnName; 
    checkedListBox1.ValueMember = dt.Columns["EntityID"].ColumnName; 
} 

ответ

0
using (conn = new SqlConnection(Connection1)) 
      { 
       conn.Open(); 
       string query = "SELECT distinct left(RTRIM(PostalCode), 2),EntityID FROM Gen_Addresses"; 
       SqlCommand cmd=null; 
       cmd=new SqlCommand(query ,conn); 
       dt = new DataTable(); 
       ad = new SqlDataAdapter(); 
       ad.SelectCommand=cmd; 
       ad.Fill(dt); 
       checkedListBox1.DisplayMember =  dt.Columns["PostalCode"].ColumnName; 
       checkedListBox1.ValueMember = dt.Columns["EntityID"].ColumnName; 


      } 

попробовать это

0

Вы должны указать псевдоним столбца в запросе для того, чтобы ссылаться на выражение по имени вместо порядкового:

string query = "SELECT distinct left(RTRIM(PostalCode), 2) AS PostalCode,EntityID FROM Gen_Addresses";