我想弄清楚我的數據表是否包含某一行。所以我使用.Contains方法,但是當我試圖運行我的程序時,遇到了一個MissingPrimaryKeyException,我無法弄清楚。檢查一個表是否包含行C#
DataTable table = dataQuery.executeQuery();
foreach(DataRow row in table.Rows)
{
if(table.Rows.Contains("certainRow"))
{
blah blah blah
...
我只是在我第二次調用table.Rows時發生異常,這對我來說沒有任何意義。如果我的表沒有主鍵,那麼在foreach調用中它不會給我一個錯誤嗎?
編輯:我只是意識到,包含做了別的事情比我認爲它沒有。 Matthijs ...是的,這是我想要的。我需要知道「certainRow」實際上是否存在一行,否則我無法操作該行中的數據。
不幸的是,我是C#的新手,並沒有編程任何超過5年的任何東西,所以我不知道是否有一種方法,做我想做的。或者如果我需要自己創造一些東西。
編輯#2: 我想通過使用DataTableReader解決我的問題。
private bool doesExist(string rowName, DataTable table)
{
bool value = false;
DataTableReader reader = new DataTableReader(table);
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
{
if (reader.GetValue(i) == rowName)
{
value = true;
}
}
}
return value;
}
我不明白你的邏輯。你迭代所有的行,但仍然調用整個'table.Rows' ...不應該像'if(row.Contains(「certainRow」)'' – Matthijs 2014-08-27 17:11:48
你能調試和可視化數據表嗎?檢查所有行在pk col中是否有值? – 2014-08-27 17:12:04