我正在尋找一個關鍵字的PDF文件,並返回其上該關鍵字被發現的頁面。如果關鍵字被發現,我將返回頁面列表和文件名。但是,如果關鍵字未在PDF文件中找到,我想刪除數據表中的行。刪除從數據表中的一行在C#
public DataTable dtPubSearchResultsFromFiles(string sqlQuery, string safeKeyword)
{
// Returns a datatable of publication search results based on PDF files.
SqlConnection con = new SqlConnection(getConnectionString());
SqlCommand cmd = new SqlCommand(sqlQuery, con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
dt.Columns.Add("Pages", typeof(string));
da.Fill(dt);
dt.PrimaryKey = new DataColumn[] { dt.Columns["publicationID"] };
foreach (DataRow row in dt.Rows)
{
//call search function to look for keyword
List<int> myPages = new List<int>();
string fileName = row["linkToPublicationPDF"].ToString();
myPages = ReadPdfFile(fileName, safeKeyword);
if (myPages.Count > 0)
{
string pagelist = "";
foreach (int page in myPages)
{
pagelist = pagelist + page + " ";
}
row["Pages"] = pagelist;
}
else
{
//remove/delete the row from the datatable if "myPages.Count" is 0
dt.Rows.Remove(row);
}
}
return dt;
}
當我加入這個(「dt.Rows.Remove(行)」),我得到這個錯誤時的頁面被稱爲「System.InvalidOperationException:集合已修改;枚舉操作可能不會執行」
對此提出建議?註釋?修復?歡迎各界...
鮑勃
感謝馬里奧斯。它似乎解決了我的問題的第一部分。 –