我當前的項目是從OleDbDatabase
和.CSV文件獲取信息,並將其全部放入更大的OleDbDatabase
。從OleDb數據庫讀取/寫入數據表LINQ
我目前從兩個.CSV文件中讀取所有需要的信息,並將OleDbDatabase
轉換爲DataTables
....在哪裏變得毛茸茸的是將所有信息寫回另一個OleDbDatabase。
現在我目前的方法是做這樣的事情:
OleDbTransaction myTransaction = null;
try
{
OleDbConnection conn = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + Database);
conn.Open();
OleDbCommand command = conn.CreateCommand();
string strSQL;
command.Transaction = myTransaction;
strSQL = "Insert into TABLE " +
"(FirstName, LastName) values ('" +
FirstName + "', '" + LastName + "')";
command.CommandType = CommandType.Text;
command.CommandText = strSQL;
command.ExecuteNonQuery();
conn.close();
catch (Exception)
{
// IF invalid data is entered, rolls back the database
myTransaction.Rollback();
}
當然,這是很基本的,我使用的是SQL命令提交我的交易連接。我的問題是我可以做到這一點,但我有大約200個字段需要插入幾個表。如果這是唯一的出路,我願意做這項工作。但我覺得有一個更簡單的方法。 LINQ中有什麼可以幫助我解決這個問題嗎?
目前我有一個類似於此的方法,但工作稍好。這似乎仍然sl,不馴,但它與我所遇到的解決方案類似。我試圖找出一些更清潔的東西。 – jsmith 2010-04-20 13:41:40
@jsmith - 你爲什麼認爲它馬虎?如果不使用外部庫,「更乾淨」的解決方案會是什麼樣子?任何其他方法都需要循環遍歷列,構建插入語句,然後循環遍歷列和行並執行插入操作。海事組織,這是非常麻煩,需要更多的代碼。我已更新我的帖子,建議您可能會發現「清潔」的FileHelpers。它當然應該使解析CSV更容易。 – Thomas 2010-04-20 14:51:20
@托馬斯 - 我不知道爲什麼我認爲它馬虎。 「這似乎馬虎」是我說的。我不知道是否是這樣,這就是我問這個問題的原因。如果我知道一個「更清潔」的解決方案,我不會要求一個。我只是試圖找到最好的解決方案。現在,就是這樣,但它只是覺得它可能會更好。不過,我覺得我錯了。 – jsmith 2010-04-20 14:54:52