これはかなり奇妙です。私の c# アプリケーションには、SQL Server テーブルのレコードをカウントする非常に単純な SQL クエリがあります。コード スニペットは次のとおりです。
// Returns the number of ports defined for a given slot.
int returnval = 0;
connection.Open();
SqlCommand command = new SqlCommand("SELECT COUNT(Slotted_Port_UID) FROM tblSlottedCardPorts WHERE Slot_ID = @SlotID ", connection);
command.Parameters.AddWithValue("@SlotID", EquipmentSlotID);
SqlDataReader reader = command.ExecuteReader();
if (reader.HasRows)
{
if (!reader.IsDBNull(0))
{
returnval = reader.GetInt32(0);
}
}
reader.Close();
connection.Close();
return returnval;
SQL ステートメントをコピーして SQL Server mgmt studio に直接貼り付けると、クエリは期待どおりに返され、行数に応じて 0 または正の整数が返されます。ただし、コードは .HawRows 条件を通過しますが、reader.IsDBNull(0) 条件で失敗します。tblSlottedCardPorts が存在し、Slotted_Port_UID 列は一意の整数です。これに関する提案はありますか?結合やその他の要因が関係していないため、COUNT が Null 値を返す理由がわかりません。
これについてのアドバイスをありがとう!
ミッチェル