gpt4 book ai didi

c# - 阐明 SQL 和 ADO.net 文字参数规范

转载 作者:行者123 更新时间:2023-11-30 20:57:10 25 4
gpt4 key购买 nike

所以我正在阅读一本关于 ADO 的书,我已经读完了描述 ADO 中的参数和查询的章节的结尾。书中提供了以下代码示例来向SQL Server传递参数:

Dim paramValue As New SqlParameter("@NewSalary", SqlDbType.Money)
paramValue.Value = 50000@
salaryUpdate.Parameters.Add(paramValue)
paramValue = New SqlParameter("@EmployeeID", SqlDbType.BigInt)
paramValue.Value = 25&
salaryUpdate.Parameters.Add(paramValue)

salaryUpdate.Parameters.AddWithValue("@NewSalary", 50000@)
salaryUpdate.Parameters.AddWithValue("@EmployeeID", 25&)

对于 C# 它显示

salaryUpdate.Parameters.AddWithValue("@NewSalary", 50000m);
salaryUpdate.Parameters.AddWithValue("@EmployeeID", 25L);

这本书没有真正深入的是为什么定义的值有附加的 M、L、@ 和字符。为什么是这样? vb 和 c# 之间的区别也许只是语法?

尝试在 MSDN 上做一些研究,但这些类型的例子没有出现在那里,或者看起来是这样。 http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.parameters.aspx

感谢任何澄清

最佳答案

在 VB.NET 和 C# 中,您可以将后缀字符添加到常量值以解释其数据类型。它是 VB6 时代的遗留物,可帮助解决可移植性问题。现在你应该尝试使用显式常量 Const NAME As Type = value声明并仅在需要时使用后缀。

See VB.NET Type Characters on MSDN

对于 AddWithValuenew SqlParameter 语法,后者更可取,因为您可以准确地选择传递给数据库引擎的参数的数据类型和大小。通过这种方式,数据库引擎可以更好地优化查询并在您重新执行时重用已经准备好的语句。然而,AddWithValue 在简单易用方面具有优势。因此,如果您不担心性能,您也可以使用它。

顺便说一下,这两种语法可以在 VB.NET 和 C# 中使用。它们是 NET 库的一部分,可以从每种托管语言调用

关于c# - 阐明 SQL 和 ADO.net 文字参数规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17032062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com