Code Bye

c#可以使用相同的参数化SQL语句访问SqlServer和Oracle吗

C#连接SqlServer时,使用参数化SQL,可以使用select * from user where id=@id
C#连接Oracle时,使用参数化SQL,可以使用select * from user where id=:id
有没有统一的方法,用一条SQL既能访问SqlServer,也能访问Oracle?
解决方案

20

“用一条SQL”这个说法暂时没有根据。假如使用 linq provider,那是有根据的可操作的。但是sql 语句方便,现在没有直接的方式。
好在这种sql 语句只写一遍。你可以把相同查询id的不同版本保存到不同的 resx 中,然后在程序中同一地切换一下。就好像把软件界面的全部文字从中文切换为英文一样方便。

20

select * from user where id=1

这种才是标准SQL,而且是被全部关系型数据库认可的
参数化这种本来就是各个数据库都是独立的,而且这种参数化写法,在Command创建参数的时候都是各个dll自动加前缀的(当然有些关系型数据库参数化是占位的方式,那又是另一回事)


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明c#可以使用相同的参数化SQL语句访问SqlServer和Oracle吗