Parameters.Add(Overloads)vs Parameters.AddWithValue(可能丢失字符)

时间:2017-09-11 14:08:43

标签: c# mysql

我对我在几个线程中读过的参数的经验很少,Parameters.add已被弃用(即使是编译器也说过),你应该使用Parameters.AddWithValue代替。

但是现在我发现了this帖子,它解释了为什么你应该使用Parameters.Add,因为它将指定的DataType发送到服务器,以及当你使用Parameters.AddWithValue函数时必须推断DataType转换它可能会在集合不匹配时丢失字符。

很清楚这一点。回到Parameters.Add或者我应该坚持Parameters.AddWithValue了解它必须做出的转换,这不是一个好主意吗?

1 个答案:

答案 0 :(得分:1)

已发布的文章已包含有关如何避免问题的建议。

基本上,您需要使用.Add的正确重载:

https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparametercollection.add%28v=vs.110%29.aspx

从MSDN可以看出,只有一个标记为[Obsolete]的重载。我会使用最适合我需要的.Add重载。