我有以下代碼C#「繼續」不按預期運行
private void bgwSendMail_DoWork(object sender, DoWorkEventArgs e)
{
DataSet ds = getMailToSend();
DataTable table = ds.Tables[0];
{
foreach (DataRow row in table.Rows)
{
{
string attachment1 = ds.Tables[0].Rows[0]["Attachment1"].ToString();
string attachment2 = ds.Tables[0].Rows[0]["Attachment2"].ToString();
string attachment3 = ds.Tables[0].Rows[0]["Attachment3"].ToString();
string attachment4 = ds.Tables[0].Rows[0]["Attachment4"].ToString();
string mailTo = ds.Tables[0].Rows[0]["EmailTo"].ToString();
string mailSubject = ds.Tables[0].Rows[0]["EmailSubject"].ToString();
string mailBody= ds.Tables[0].Rows[0]["EmailBody"].ToString();
string uid = ds.Tables[0].Rows[0]["uid"].ToString();
if (String.IsNullOrEmpty(attachment1))
{
//TODO Send Email Straight away ignore rest
}
else
{
if (!String.IsNullOrEmpty(attachment1))
{
bool attachment1Exists = checkFileExists(attachment1);
if (attachment1Exists == false)
{
continue;
}
}
現在我所期望的,當我們打到繼續(它被擊中)在底部,我們應該退回到如下面的foreach,並移動到下一條記錄在數據集中
這不會發生,它遍歷相同的記錄,從該繼續來自一遍又一遍,這正常嗎?
如果是正常的,一旦它退出一次,最好的方法是讓foreach
忽略數據表中的那一行?
你實際上並沒有在使用'row'。您正在不斷使用'ds.Tables [0] .Rows [0]'。有意義的是,它總是處理相同的數據。 –