2016-08-25 27 views
0

我有以下方法,但它不会填充数据表。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";