.net – 提高SQL命令的代码可读性

在我正在开发的Web应用程序的一个类中,我有一些相当长的SQL查询.

在开发三层应用程序时,使这种代码变得更好的最佳做法是什么?

Dim dc As New sqlCommand("INSERT INTO Choices VALUES ('" + _
                                 SanitizeInput(strUser) + "','" + _
                                 SanitizeInput(strFirstHalfDay) + "','" + _
                                 SanitizeInput(strSecondHalfDay) + "','" + _
                                 SanitizeInput(strFullDay) + "'," + _
                                 SanitizeInput(Convert.ToInt32(firstHalfPaid).ToString()) + "," + _
                                 SanitizeInput(Convert.ToInt32(secondHalfPaid).ToString()) + "," + _
                                 SanitizeInput(Convert.ToInt32(fullPaid).ToString()) + ")",cn)

你认为这种代码是可以接受还是臭?

解决方法

停止,不要这样做,使用准备好的抱怨,你会得到安全和可读性.

改为使用它:

Dim dc As New sqlCommand("INSERT INTO Choices VALUES (@User,@FirstHalfDay,@SecondHalfDay,@FullDay,@FirstHalfPaid,@SecondHalfPaid,@FullPaid'",cn)
dc.Parameters.Add (new sqlParameter ("User",strUser))
dc.Parameters.Add (new sqlParameter ("FirstHalfDay",strFirstHalfDay))
dc.Parameters.Add (new sqlParameter ("SecondHalfDay",strSecondHalfDay))
dc.Parameters.Add (new sqlParameter ("FullDay",strFullDay))
dc.Parameters.Add (new sqlParameter ("FirstHalfPaid",firstHalfPaid))
dc.Parameters.Add (new sqlParameter ("SecondHalfPaid",secondHalfPaid))
dc.Parameters.Add (new sqlParameter ("FullPaid",fullPaid))

相关文章

(一)日志传送架构 (1.1)相关服务器 主服务器 :用于生产的服务器,上面运行这生产SQL Server数据库...
(一)事故背景 最近在SQL Server 2012生产数据库上配置完事物复制(发布订阅)后,生产数据库业务出现了...
(一)测试目的 目前公司使用的SQL SERVER 2012高可用环境为主备模式,其中主库可执行读写操作,备库既...
(一)背景个人在使用sql server时,用到了sql server的发布订阅来做主从同步,类似MySQL的异步复制。在...
UNION和OR谓词 找出 product 和 product2 中售价高于 500 的商品的基本信息. select * from product wh...
datawhale组队学习task03