2014-04-20 42 views
0

我想創建一個函數,將查詢發送到遠程mysql服務器並將數據動態放入DataTable對象,現在我的問題是將值從讀取器中取出並完全填充該對象。如果我從閱讀器中得到1行而不是整個數據,如果我得到10個超出範圍的錯誤。我不想讓這個綁定到一個特定的表。c#動態查詢到數據表?

... 
    oCon = new MySqlConnection(...) 
    ...   

    private DataTable query(MySqlCommand command, DataTable pattern) 
    { 
     DataTable table = pattern; 
     oCon.Open(); 
     MySqlDataReader reader = command.ExecuteReader(); 
     while (reader.Read()) 
     { 
      for (int i = 0; i < table.Columns.Count; i++) 
      { 
       table.Rows.Add(What here?); 
      } 
     } 
     reader.Close(); 
     oCon.Close(); 
     return table; 
    } 

回答

1

您需要使用的GetName功能。

MySqlDataReader resultSet = cmd.ExecuteReader(); 
dt.Columns.Clear(); 
for (int i = 0; i < resultSet.FieldCount; i++) 
{ 
    dt.Columns.Add(resultSet.GetName(i)); 
} 
dt.Load(resultSet); 
+0

那正是我想要的,謝謝! – user3341388