2023拉

解决拼接SQL字符串的烦恼解决方法

上一篇 / 下一篇  2012-03-07 11:39:14 / 个人分类:软件开发相关

这是典型的程序员的写法,拼串的方式,要是用纯数据库SQL(运行的是SQL server)  
声明的两个变量
@sql varchar型的
@cycle int型的
然后@cycle从0开始,一个while循环到64
while (@cycle < 64)
begin

    set @sql = 'insert into ncl_955672_seq3(serialno) select geseq3 from smtoge' + cast(@cycle as varchar(20)) + ' with (nolock) where geseq1=955672 and type=15'
    execute (@sql)
    set @cycle = @cycle + 1
end

 使用 LINQ 或 存储过程参数化 解决。
 
 LINQ:语言集成查询(Language INtegrated Query)是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式
操作内存数据。
存储过程参数化:数据库中的SQL语句是需要解析才能执行的,如果是参数化的,每次
调用虽然传入不同的参数,但可以省去解析的时间。
存储过程吧,你想怎么整就怎么整,可以做到项目从来不在程序里面写SQL语句,都
是在服务器上面写存储过程,要是有什么问题需要修改的话直接修改存储过程就好了
客户端完全不需要考虑更新程序那些事儿

Tips: ADO.NET支持你可以传递参数对象给SQL(也就是所谓参数化SQL)来代替拼接
SQL这种不安全的做法


TAG:

 

评分:0

我来说两句

Open Toolbar