2011-07-24 35 views
0

如何將數據從DataTable轉換爲一組SQL查詢?DataTable到一組SQL查詢

問題是我沒有連接數據庫。

我已經試過:

SqlDataAdapter dataAdapter = new SqlDataAdapter(); 
SqlCommandBuilder sqlCommandBuilder = new SqlCommandBuilder(dataAdapter); 

dataAdapter.InsertCommand = sqlCommandBuilder.GetInsertCommand(); 
//Exception - The DataAdapter.SelectCommand property needs to be initialized. 

dataAdapter.Update(_myDB, MenuTable); 
dataAdapter.InsertCommand // contain commands 

但它不工作,因爲我還沒有連接!任何人有想法?

+1

我不認爲有任何現成的東西存在 - 你必須遍歷數據表中的行並自己生成適當的INSERT語句。 –

+0

你可能是對的! –

回答

1
public static IEnumerable<string> GetInsertQueryFromDataTable(DataTable dataTable) 
    { 
     foreach (DataRow row in dataTable.AsEnumerable()) 
     { 
      var s = new StringBuilder(string.Format("INSERT INTO {0} SET ", dataTable.TableName)); 

      foreach (DataColumn v in dataTable.Columns) 
      { 
       var r = new StringBuilder(row[v.ColumnName].ToString()); 
       r.Replace(@"\", @"\\"); 
       r.Replace("\"", "\\\""); 
       s.AppendFormat("{0}=\"{1}\", ", v.ColumnName, r); 
      } 

      s.Remove(s.Length - 2, 1); 
      s.AppendLine(";"); 
      yield return s.ToString(); 
     } 
    } 
1

在dataAdapater的構造函數中傳遞連接字符串。另外,我認爲在使用適配器進行更新之前,您需要先調用Fill方法。

+0

問題是我沒有連接數據庫。 –

+0

然後建立一個連接字符串。有什麼問題? – N0Alias

+0

我試過了)它需要Excaption沒有連接! –