首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >3种类型的询问SQL (没有映射器,类型为linq或nhibernate)

3种类型的询问SQL (没有映射器,类型为linq或nhibernate)
EN

Stack Overflow用户
提问于 2011-02-09 04:32:29
回答 3查看 240关注 0票数 1

这3种类型的SQL请求数据有什么不同(不是说odbc可以请求不同的DB)

1.)ODBC dll: Microsoft.Data.ODBC

代码语言:javascript
运行
复制
OdbcConnection cn;
OdbcCommand cmd;
string MyString;

MyString="Select ...";
cn= new OdbcConnection("Driver={SQL Server};Server=...;UID=...;PWD=...;Database=...;");
cn.Open();
cmd=new OdbcCommand(MyString,cn);
OdbcDataReader reader = cmd.ExecuteReader();

while (reader.Read())
{
    ....
}

reader.Close();
cn.Close();

第二个dll: System.Data.SqlClient

代码语言:javascript
运行
复制
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["…"].ConnectionString);           
SqlDataReader rdr = null;

SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT ..."

cmd.CommandType = CommandType.Text;
conn.Open();
rdr = cmd.ExecuteReader();              

while (rdr.Read())
{
   .....
}
rdr.Close();
conn.Close();

第三: dll: Microsoft.Practices.EnterpriseLibrary.Data

代码语言:javascript
运行
复制
Database context = DatabaseFactory.CreateDatabase("..."); 
IDataReader dataReader = context.ExecuteReader(CommandType.Text,"SELECT ...")

dataReader.Read();
var inputid = (int)dataReader["..."];
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-09 05:57:27

  • ODBC是一个非常古老的DB-access标准,除非万不得已,否则不要使用它。(它在20世纪90年代是“时髦”的,或者说so)
  • SqlClient是访问SQL Server数据库的.NET基本ADO.NET级别,也是所有其他技术的基础。它基本上可以用SQL Server做您需要做的任何事情--运行数据查询、运行DDL查询、执行存储过程等等。

是ADO.NET之上的一层,它通过为你处理一些重复的代码来简化常见任务。

在ADO.NET基础之上还有其他东西--比如NHibernate、实体框架等等--但是SqlClient / ADO.NET实际上是.NET世界中所有当前的、现代的数据库访问(主要是对SQL Server的访问)的基础

票数 2
EN

Stack Overflow用户

发布于 2011-02-09 04:38:22

MSSQL server ODBC驱动程序是一种围绕ODBC的包装器,也就是说,对原生数据库connection

  • SqlConnection的包装器是与MSSQL server进行对话的最直接的方式。AFAIK

  • DatabaseFactory只是一个工厂(嗯……)。当您与MSSQL Server交谈时,最终会使用SqlConnection。
票数 0
EN

Stack Overflow用户

发布于 2011-02-09 04:47:39

Microsoft.Practices.EnterpriseLibrary.DataSystem.Data.SqlClient的包装器,因此它为内置的SqlClient功能添加了一些细节。正如@Felice Pollano所说,ODBC驱动程序封装了本机DB连接,所以我倾向于避免使用它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4938073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档