Qtyの計算を計画している場合は、不要な明示的/暗黙的な変換を避けるために、SQLServerに文字データ型として格納することはお勧めしません。
あなたができることは次のとおりです。
a)Qtyをintデータ型として使用するようにテーブルを再設計します。
b)数値のみを受け入れるように、テキストボックスに検証を追加します。
c)テキストボックスの値を以下のような数値タイプに変換し、これをデータベースの数量フィールドに渡します。
if (Int32.TryParse(txtQty1.Text))
int Qty1 = Convert.ToInt32(txtQty1.Text);
else
//throw-handle exception
d)大きい数値または小さい数値を格納する必要がある場合は、C#とSQLServerの両方で適切な同等のデータ型を使用します。たとえば、long
代わりに使用する必要がある場合、コードは次のようになり、Qtyフィールドをとして持つ必要がありますbigint
。
if (Int64.TryParse(txtQty1.Text))
int Qty1 = Convert.ToInt64(txtQty1.Text);
else
//throw/handle exception
このリンクには、SQLServerと.NETFrameworkの間の同等のデータ型が表示されます。
PS:テーブルのデザインを確認してください。正規化することをお勧めします。
たとえば、ItemId、GroupId、Item、Qty、Costのみを含む別のテーブルを作成できます。次に、既存のテーブルで、すべてのアイテム、数量、およびコストの列を削除し、マスター列を保持できます。2番目のテーブルのGroupIdは、既存のテーブルの主キーになります。これは、それを正規化する1つの方法です。