【发布时间】:2016-06-30 15:47:28
【问题描述】:
您能帮我理解这两种连接数据库的技术之间的区别吗?
我是数据库连接领域的新手,但您能否通过具体示例解释每种情况下使用哪种技术?例如,如果我正在开发应用程序 ob Visual Studio 并要连接 MySQL,我应该使用什么?为什么?
对于专业人士来说,这个问题可能看起来很愚蠢,但如果你能帮我澄清一下,我将非常感激。
【问题讨论】:
您能帮我理解这两种连接数据库的技术之间的区别吗?
我是数据库连接领域的新手,但您能否通过具体示例解释每种情况下使用哪种技术?例如,如果我正在开发应用程序 ob Visual Studio 并要连接 MySQL,我应该使用什么?为什么?
对于专业人士来说,这个问题可能看起来很愚蠢,但如果你能帮我澄清一下,我将非常感激。
【问题讨论】:
.NET 数据提供程序是一个软件组件,它提供对数据源的访问。它们专门设计用于 .NET 应用程序(C#、VB.NET 等),并且将至少具有一些标准类/函数:Connection、Command、DataReader、DataAdapter(类似于本机 System.Data.SQLClient 类)。
ODBC 驱动程序非常相似,但它是使用 ODBC 标准编写的,虽然它可以在应用程序中以编程方式使用,但它也能够在任何数量的流行 BI/报告/ETL 工具中用作数据连接器(如 Tableau、QlikView、PowerBI 等)。要在 .NET 应用程序中使用 ODBC 驱动程序,您需要使用Microsoft.Data.ODBC library。
对于您的用例,您需要使用 ADO.NET 数据提供程序,这样您就可以确定您使用的是专门设计用于 .NET 应用程序的产品。一些基本代码类似于以下内容:
string connString = "server=XXX.XXX.XXX.XXX;database=myDatabase;user=myUser;password=myPassword;...";
using (MySQLConnection conn = new MySQLConnection(connString){
MySQLCommand cmd = new MySQLCommand("SELECT * FROM some_table", conn);
MySQLDataReader rdr = cmd.ExecuteReader();
while(rdr.Read()) {
Console.WriteLine("=================");
for (int i=0; i<rdr.FieldCount; i++) {
Console.WriteLine(rdr.GetName(i) + ":\t\t" + rdr.GetValue(i));
}
}
}
【讨论】: