我有一個按鈕,從多個表中複製記錄。它必須讀取現有的數據表,從查詢中複製行,更改行中的某些信息,然後將新行寫回同一個表.note:不改變行但是創建新行使用類似的信息。 守則貝婁是我所想achieve.It不會工作,因爲它會增加新行到同一數據表中的例子,因爲它在一個循環一起去錢櫃可能是一個堆棧溢出數據集複製,更改,然後保存
nexusDBDataSet.Drawing_Table.Clear();
drawing_TableTableAdapter.FillByJobNumber(nexusDBDataSet.Drawing_Table, OldJobcardNumber);
//Process Line By Line
foreach (DataRow myRow in nexusDBDataSet.Drawing_Table.Rows)
{
//Read
string DirectoryName = myRow["DirectoryName"].ToString();
string DrawingName = myRow["DrawingName"].ToString();
string DateAdded = myRow["DateAdded"].ToString();
string LastAccessedDate = myRow["LastAccessedDate"].ToString();
string LastAccessedUserName = myRow["LastAccessedUserName"].ToString();
string ClientName = myRow["ClientName"].ToString();
string ContentType = myRow["ContentType"].ToString();
string Description = myRow["Description"].ToString();
//Add New
DataRow DrawingDataRow = nexusDBDataSet.Drawing_Table.NewRow(); // Multi Value
DrawingDataRow["JobNumber"] = NewJobcardNumber;
DrawingDataRow["DirectoryName"] = DirectoryName.Replace("\\" + OldJobcardNumber + "\\", "\\" + NewJobcardNumber + "\\");
DrawingDataRow["DrawingName"] = DrawingName;
DrawingDataRow["DateAdded"] = DateAdded;
DrawingDataRow["LastAccessedDate"] = LastAccessedDate;
DrawingDataRow["LastAccessedUserName"] = LastAccessedUserName;
DrawingDataRow["ClientName"] = ClientName;
DrawingDataRow["ContentType"] = ContentType;
DrawingDataRow["Description"] = Description;
nexusDBDataSet.Drawing_Table.Rows.Add(DrawingDataRow);
}
//Updating
this.Validate();
drawing_TableBindingSource.EndEdit();
tableAdapterManager.UpdateAll(nexusDBDataSet);
RefreshData();
我知道他們假設是兩個循環,一個用於讀取,另一個用於寫入,但我不知道如何暫時將數據保存在某種數據表中以便稍後寫入,或者如何創建臨時數據表來存儲讀取部分查詢然後把它寫回到實際的數據庫,我正在考慮使用FOR循環來計算寫入之前的行數,但我不知道這可能會起作用。
林不知道我明白,我試圖從現有的數據生成新的數據,通過查詢過濾。 – DarkPh03n1X 2014-09-11 12:04:03
正如我所說我不知道如何編寫一個臨時Datatable來存儲新的數據,我試過'DataSet myDataSet = new DataSet(「Temp」); DataTable myDataTable = new DataTable(「Temp」);'但'drawing_TableTableAdapter.FillByJobNumber()'方法不接受它 – DarkPh03n1X 2014-09-11 12:11:39