現在、私は、SQLデータベース内の列の中で最も高い数値を取得するためのASP.NET C#Webアプリケーションの作成方法を開発中です。今、私は次のコード行を生成します。 connHull
はコードの上記ラインのSqlConnection
ある使用できない場合、SQLデータベースで最も高い数値を返します。戻り値 '0'
commTagNo = new SqlCommand("SELECT MAX(ComponentTagEntry) FROM dbo.HullDataSheet", connHull);
connHull.Open();
int newTagNo = (int)commTagNo.ExecuteScalar();
connHull.Close();
newTagNo = newTagNo + 1;
。
上記のコードでは、データベースにすでに最小限の1行のデータがある場合にのみ、列ComponentTagEntry
の中で最も高い数値を取得できます。
データベースが空の場合、.ExecuteScalar()
のデータがないため、「指定されたキャストが無効です」というメッセージが返されます。
私が必要とするのは、データベースが空の場合、コードが最高の番号を '0'として取得するためです。
私は上記のコードをif文で変更する必要があることを知っていますが、true/false文と比較しなければならない値はわかりません。
ご協力いただきありがとうございます。
は、私はあなたが「タグ番号」のID列の代わりに、このロジックを使用することを示唆している可能性がありますことをお勧めしたいですか?複数の同時ユーザーが重複したID(競合状態)を生成する可能性があります。 –
'ComponentTagEntry'は、IDの増分が1でIDのシードが1のテーブルのMy Identity列です。このプロジェクトでは、データベースは表形式で表示します。だから私はIDシードを0に変更することはできません。 – Fahmieyz
推薦できるかどうかわかりませんが、null可能なint 'int? 'を使うとうまくいきますか? – HoneyBadger