下面是我的代碼:C#環流式問題
protected void SubmitCSV_Click(object sender, ImageClickEventArgs e)
{ //Check Routes File Uploader for file
if (ImportCSV.HasFile)
{
//Get File name
string fileName = ImportCSV.FileName;
//Read CSV
StreamReader ReadUploadedFile = new StreamReader(ImportCSV.FileContent);
//Parse CSV
var pathOfCSVFile = ReadUploadedFile;
//Gather CSV contents
var adapter = new GenericParsing.GenericParserAdapter(pathOfCSVFile);
//Ignore first row
adapter.FirstRowHasHeader = true;
DataTable TempRouteDataTable = adapter.GetDataTable();
if (ExcelDDL.SelectedValue == "Active Service Keys" && fileName == "ActiveServiceKeys.csv")
{
SEPTA_DS.ActiveServiceKeysTBLDataTable GetActiveServiceKeys = (SEPTA_DS.ActiveServiceKeysTBLDataTable)askta.GetData();
var hasData = GetActiveServiceKeys.Rows.Count > 0;
//Loop through each row and insert into database
foreach (DataRow row in TempRouteDataTable.Rows)
{
//Gather column headers
var category = Convert.ToString(CategoryDDL.SelectedItem);
var agency = Convert.ToString(row["Agency"]);
var route = Convert.ToString(row["Route"]);
var direction = Convert.ToString(row["Direction"]);
var serviceKey = Convert.ToString(row["Service Key"]);
var language = Convert.ToString(row["Language"]);
var activeServiceKeys = Convert.ToString(row["Active Service Keys"]);
//Check if data already exists
if (hasData == true)
{
var originalID = Convert.ToInt32(GetActiveServiceKeys.Rows[0] ["ActiveServiceKeysID"]);
int updateData = Convert.ToInt32(askta.UpdateActiveServiceKeys(category, agency, route, direction, serviceKey, language, activeServiceKeys, originalID));
}
else
{
int insertData = Convert.ToInt32(askta.InsertActiveServiceKeys(category, agency, route, direction, serviceKey, language, activeServiceKeys));
}
}
}
}
}
問題存在的行之後發生。 foreach
目前正在讀取上傳的CSV文件,因此在啓動foreach
時,它將一行放入數據庫中。
編輯:
數據時不我想運行insert
方法存在數據庫中。 當它存在時,我想運行update
方法。
問題:運行update
方法時,需要使用originalID
(自動遞增int)。由於上傳CSV的每行都在foreach
以內,所以我不熟悉如何獲取每個循環的originalID
。
目前,(只是固定)我有一個0,但不會改變每個循環。
你已經發布了很多代碼,但你的問題不是很清楚。你說你「拿不到原始身份證」 - 你的意思是什麼? – 2010-09-08 17:33:39
額外的方括號是否爲錯字? 'GetActiveServiceKeys.Rows [[「ActiveServiceKeysID」]' – Greg 2010-09-08 17:36:44
目前尚不清楚你爲什麼需要原始ID。代碼是更新或插入。對於同一組數據,是否有許多行,您需要「記住」或查找現有的ID? – 2010-09-08 17:40:50