2012-05-30 25 views
2

我在訪問2007使用訪問的SQL設計視圖這給了我正確的結果下面的查詢..訪問2007查詢和C#的數據表顯示不同的輸出

SELECT B1.LAYER_TYPE, 
    B1.LAYER_NAME AS LAYER_NAME, 
    B2.LAYER_NAME AS RELATED_LAYER_NAME, 
    B3.LAYER_NAME AS RELATED_LAYER2_NAME, 
    C.RULE_NAME 
    FROM (((NCS_RULES_RELATIONS AS A 
    LEFT JOIN NCS_LAYERS AS B1 ON A.LAYER_ID = B1.LAYER_ID) 
    LEFT JOIN NCS_LAYERS AS B2 ON A.RELTD_LAYER_ID = B2.LAYER_ID) 
    LEFT JOIN NCS_LAYERS AS B3 ON A.RELTD_LAYER2_ID = B3.LAYER_ID) 
    LEFT JOIN NCS_RULES AS C ON A.RULE_ID = C.RULE_ID 
    ORDER BY B1.LAYER_TYPE; 

的結果如下:

query results in access

但是當我嘗試使用c#oledbconnection訪問得到的結果到DataTable,在最後一排的RULE_NAME字段值顯示奇怪的結果(見下面的圖)。

from visualstudio

我的檢索表的代碼如下:

public DataTable GetTable(string strSelectSQL) 
     { 
      if (this.con.State != ConnectionState.Open) 
       con.Open(); 

      DataTable dt = new DataTable(); 
      DataSet ds = new DataSet(); 
      IDbCommand command = con.CreateCommand(); 
      command.CommandText = strSelectSQL; 
      command.Connection = con; 

      IDbDataAdapter da = factory.CreateDataAdapter(); 
      da.SelectCommand = command; 
      da.Fill(ds); 

      dt = ds.Tables[0]; 

      con.Close(); 
      return dt; 

     } 

有人可以幫我這個奇怪的行爲?

回答

2

似乎一切都很好。我猜你有Rule_name field這樣的多行值:AnnoFromLine\n\rDimOnLine。 Datagridview顯示多行值,你可以看到和sql設計視圖diplaying只是第一行。

+0

我的上帝!它是如何發生的?你是絕對正確的!!!謝謝.. – vinayan

相關問題