レコードをデータベースに記録するかどうかは、行を数えて調べようとしています。私は行の数をカウントし、レコードがデータベースに存在するように行数(1,2,3など)を返すコードを持っています。行数をカウントするには離れていますが、レコード数が0に等しい場合にのみメッセージを返します(レコードはデータベースに存在しません)。0の場合は行数を取得する -
while (dbReader.Read())
{
int fCount = dbReader.FieldCount;
for (int i2 = 0; i2 < fCount; i2++)
{
string col = dbReader.GetString(i2);
string strExist = "Record Exists";
ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + strExist + "');", true);
}
}
Some Code ---
{
// Record doesn't exist in database.
}
私はDB2データベースでC#を使用しています。
私はIfステートメントを行う
if fcount == 0,
私はそれをデバッグした後、それは例外の詳細を述べている:System.InvalidOperationExceptionが:データなし行/列に存在しません。オンライン行の列col = dbReader.GetString(i2);
データが存在しないことはわかっていますが、代わりにこのエラーではないというメッセージが必要です。
あなたの例では、少し簡単だと私はあなたが「というメッセージを返す」によって何を意味するのか分からない...の行をカウントする貧しい人々の方法のようです。 fCountには行数が含まれていますか?だから、あなたが必要なのは(fCount == 0)if?私はそれがあなたが質問に詳細を追加すると助けになると思います。 – OldBoyCoder
私はコードを変更しました。私は助けてくれることを願っています。 – user6097989
OK、それは、fCountが行数であると思っていました。ループに入ったということは、1行のデータを持たなければならないか、ReadがFalseを返すことを意味します。取得している例外は、列のデータがないことを意味します。もしGetStringを呼び出す前に '(!dbReader.IsDBNull(i2))'を試してみてください。 – OldBoyCoder