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