如果您打算为 Qty 进行计算,那么最好不要将其作为字符数据类型存储在 SQL Server 中以避免不必要的显式/隐式转换。
你可以做的是:
a) 重新设计您的表以将 Qty 作为 int 数据类型。
b) 向您的文本框添加验证以仅接受数值。
c) 将文本框值转换为如下所示的数字类型,并将其传递给数据库 Qty 字段:
if (Int32.TryParse(txtQty1.Text))
int Qty1 = Convert.ToInt32(txtQty1.Text);
else
//throw-handle exception
d) 如果您需要存储较大的数字或较小的数字,请在 C# 和 SQL Server 中使用适当的等效数据类型。例如,如果您需要long
改用,那么您的代码将如下所示,并且您需要将 Qty 字段设置为bigint
.
if (Int64.TryParse(txtQty1.Text))
int Qty1 = Convert.ToInt64(txtQty1.Text);
else
//throw/handle exception
此链接将向您展示 SQL Server 和 .NET 框架之间的等效数据类型。
PS:请检查您的桌子设计。您可能希望对其进行规范化。
例如,您可以有一个单独的表,其中只有 ItemId、GroupId、Item、Qty、Cost。然后在现有表中,您可以删除所有 Item、Qty 和 Cost 列并保留主列。第二个表中的 GroupId 将是现有表的主键。这是对其进行规范化的一种方式。