用下面的代碼:如何判斷我的SqlCeDataReader在調用SqlCeCommand.ExecuteReader()後是否包含任何vals?
SqlCeDataReader myReader = cmd.ExecuteReader(CommandBehavior.SingleRow);
itemID = myReader.GetString(0);
packSize = myReader.GetString(1);
...我得到一個例外,「沒有數據存在行/列」我希望它靜靜地「中止」,而不是拋出異常
這個案例。嘗試分配前有沒有辦法先測試?
我嘗試這樣做,但它確實沒有好:
SqlCeDataReader myReader = cmd.ExecuteReader(CommandBehavior.SingleRow);
if (null != myReader.GetString(0))
{
itemID = myReader.GetString(0);
}
if (null != myReader.GetString(1))
{
packSize = myReader.GetString(1);
}
另一種可能是把它包起來在一條try..catch和「吃」的例外,但我不知道如果是這樣的最好的方式去...
這是基於我的SqlDataReader'的'知識,而不是' SqlCeDataReader',但在前一種情況下,您必須先「讀取()」第一條記錄。假(0)返回表示不再有記錄。 –
謝謝;我曾經假定調用ExecuteReader去了一切。因此,我添加了「if(myReader.Read()){}」使您的評論成爲答案,並將其標記爲*答案。 –
感謝您的提議。正如我所建議的,我的回答只是一個猜測,這就是爲什麼我把它放在評論中而不是答案中。此外,我喜歡@ MD.Unicorn對哈斯羅斯的額外支票,這已經讓我不知所措。 –