首页 > 解决方案 > 使用 DbConnection、SqlConnection、SqlCommand、DbCommand 等连接数据库

问题描述

我已经研究过使用 ado.net 建立与数据库的连接。我被DbConnection, SqlConnection, SqlCommand,弄糊涂了DbCommand。有人可以告诉我区别吗?

我搜索了这些术语,似乎这些 DB 前缀是这些前缀的基类Sql

那么什么时候应该使用这些Sql前缀(SqlConnection),什么时候应该使用 DB 前缀(DbConnection)?

此外,如果我把连接字符串放在App.configorWeb.config中,我还需要使用这种格式来打开和关闭连接吗?

string connString = "Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;";

using (SqlConnection conn = new SqlConnection(connString))
{
}

因为在我尝试在 中添加连接字符串之后App.config,似乎我不再需要打开和关闭连接了。

另外,什么时候使用SqlParameter?谁能给我一个例子?

那是为了从数据库中传递存储过程的参数吗?

使用 DataTable、DataSet 或 reader 传递值是否更方便?

标签: c#asp.net.netado.net

解决方案


DbConnection描述了与多个数据库对话的通用 API;SqlConnection是用于与 SQL Server 对话的特定APIDbConnection. 因此,SqlConnection如果您知道您正在与 SQL Server 交谈,并且DbConnection如果您想在抽象的“任何服务器”意义上谈论连接,您就会使用。SqlConnection将为您提供比DbConnection.

对于参数:基本上,每当您将任何类型的输入传递给任何命令时。所以:很多。您可能会发现像 Dapper 或 EF 这样的工具更容易。

For DataTable/ DataSet:这些不应该你默认使用的东西。它们仍然有效,但通常任何其他方法都是可取的。


推荐阅读