SqlCommand VarChar or Int?

本文关键字:Int or VarChar SqlCommand | 更新日期: 2023-09-27 18:31:32

我想知道哪种方法是向SQLCommand添加参数的"正确"方法。在我看来,最好匹配数据类型。但是,将字符串解析为 Int 是否比使用 .ToString() 方法性能明智?这是否违背了良好做法?SQL服务器似乎并不关心。ID 在表中属于 int 类型。

command.CommandText = "SELECT name FROM table WHERE id=@ID";
command.Parameters.Add("@ID", System.Data.SqlDbType.Int).Value = int.Parse(Request.QueryString["id"]);

command.CommandText = "SELECT name FROM table WHERE id=@ID";
command.Parameters.Add("@ID", System.Data.SqlDbType.VarChar).Value = Request.QueryString["id"].ToString();

SqlCommand VarChar or Int?

SQL

Server 中的int类型在 CLR 端的 Int32 中映射。这就是为什么"正确"的方法是添加一个SqlDbType.Int的参数。时期。

但是,将字符串解析为 Int 是否比使用 .ToString() 方法性能明智?

将错误的参数类型值作为参数发送可能会产生比性能更严重的问题。看起来"性能"在您的示例中甚至不是一个真实的案例,因为您从未在工作中提到任何性能问题。

SQL服务器似乎并不关心

但作为开发人员,您应该这样做。