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

有巢鱼 2016-07-08 10:04:02
C#连接SqlServer时,使用参数化SQL,可以使用select * from user where id=@id
C#连接Oracle时,使用参数化SQL,可以使用select * from user where id=:id
有没有统一的方法,用一条SQL既能访问SqlServer,也能访问Oracle?
...全文
187 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
有巢鱼 2016-07-08
  • 打赏
  • 举报
回复
谢谢各位的回答。 看来只能是对Oracle和SqlServer使用不同的SQL语句。 针对Oracle和SqlServer各写一个存储类,用于数据库的读写操作。
xuzuning 2016-07-08
  • 打赏
  • 举报
回复
用 ? 应该就通用另外吧
  • 打赏
  • 举报
回复
select * from user where id=1
这种才是标准SQL,而且是被所有关系型数据库认可的 参数化这种本来就是各个数据库都是独立的,而且这种参数化写法,在Command创建参数的时候都是各个dll自动加前缀的(当然有些关系型数据库参数化是占位的方式,那又是另一回事)
tcmakebest 2016-07-08
  • 打赏
  • 举报
回复
对于简单的SQL也许可以,但是复杂的SQL写法都不一样,楼主还是别想了.
  • 打赏
  • 举报
回复
用代码生成工具吧,生成的工具类可以切换oracle或者sql的
  • 打赏
  • 举报
回复
“用一条SQL”这个说法暂时没有根据。如果使用 linq provider,那是有根据的可操作的。但是sql 语句方便,现在没有直接的方式。 好在这种sql 语句只写一遍。你可以把相同查询id的不同版本保存到不同的 resx 中,然后在程序中同一地切换一下。就好像把软件界面的所有文字从中文切换为英文一样方便。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧