私はC#の既存の DataRow
に列を追加しようとしています。その後、データベースの1つの値で列が埋められます。
DataRow drが既に存在し、列「COLNAME」も存在します。
comTBPは私の SqlCommand
です。
dr["COLNAME"] = Convert.ToInt32(comTBP.ExecuteScalar());
これは、データベースに値があり、ExecuteScalar()がその値を取得できる場合は、すべて正常に動作します。このコードを自分の開発サーバー(ローカル)でテストすると、ExecuteScalar()がnullまたはDBNullを返し、新しい列の値が0の場合でも機能します。ただし、コードを運用サーバーに展開すると問題が発生します。同じデータベースを使って同じことをすべて実行すると、DBNullをInt32に変換できないというメッセージが表示された例外がスローされます。
私の質問は、なぜこのエラーはプロダクションサーバーに現れ、私のローカル開発サーバーには表示されないのですか?