使用SQL和.NET选择数据的不同方法






3.86/5 (4投票s)
本文简要介绍了可帮助您使用SQL和.NET选择数据的开发工具。
引言
在本文中,我将向您展示可以使用哪些不同的开发工具来使用SQL和.NET从数据库服务器检索数据。由于这是.NET数据应用程序中非常常见的任务,我认为了解可用的替代方案以使我们的工作更容易是一件好事。
本文中包含的示例非常简单。我将简要说明每个开发工具。如果您需要更多详细信息,可以访问相应的网站。对于以下示例,我假设您有一个名为User
的表,其中包含两个字段:FirstName
和LastName
。我假设您正在使用Microsoft SQL Server。
代码片段是用C#编写的,但您可以使用任何.NET语言。
从头开始选择数据
您检索数据的第一个选项是使用.NET Framework提供的数据库访问类。下面的示例显示了如何根据FirstName
和LastName
检索User
数据库表中的记录。
SqlConnection connection =
new SqlConnection(@"Data Source=(local)\sqlexpress;Initial Catalog=MyDb;");
SqlCommand command =
new SqlCommand("SELECT * FROM USERACCOUNT
WHERE FIRSTNAME = @FIRSTNAME AND LASTNAME = @LASTNAME", connection);
SqlParameter firstNameParameter = new SqlParameter("@FIRSTNAME", SqlDbType.NVarChar, 50);
firstNameParameter.Value = "Greg";
command.Parameters.Add(firstNameParameter);
SqlParameter lastNameParameter = new SqlParameter("@LASTNAME", SqlDbType.NVarChar, 50);
lastNameParameter.Value = "Gobind";
command.Parameters.Add(lastNameParameter);
connection.Open();
SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
if (reader.Read())
{
string firstName = reader["FIRSTNAME"].ToString();
string lastName = reader["LASTNAME"].ToString();
}
reader.Close();
使用Microsoft数据访问应用程序块选择数据
Microsoft数据访问应用程序块包含数据访问代码,可帮助您调用存储过程和SQL文本命令,并针对Microsoft SQL Server数据库执行它们。有关更多信息,请阅读此处。
SqlParameter firstNameParameter =
new SqlParameter("@FIRSTNAME", SqlDbType.NVarChar, 50);
firstNameParameter.Value = "Greg";
SqlParameter lastNameParameter = new SqlParameter("@LASTNAME", SqlDbType.NVarChar, 50);
lastNameParameter.Value = "Gobind";
SqlParameter[] parameters = new SqlParameter[]
{ firstNameParameter, lastNameParameter };
SqlDataReader reader =
SqlHelper.ExecuteReader(@"Data Source=(local)\sqlexpress;Initial Catalog=MyDb;",
CommandType.Text,
"SELECT * FROM USERACCOUNT WHERE FIRSTNAME = @FIRSTNAME AND LASTNAME = @LASTNAME",
parameters);
if (reader.Read())
{
string firstName = reader["FIRSTNAME"].ToString();
string lastName = reader["LASTNAME"].ToString();
}
reader.Close();
使用Vanilla DAL(开源)选择数据
Vanilla开源项目允许您减少需要编写的数据库访问代码量。在下面的示例中,您不会看到SQL代码,因为它存储在XML文件中。有关更多信息,请阅读此处。
IDataSource dataSource = DataSourceFactory.GetDataSource();
IDataCommand command = dataSource.GetCommand("SelectUserAccountByName");
command.Parameters["FIRSTNAME"].Value = "Greg";
command.Parameters["LASTNAME"].Value = "Gobind";
IDataReader reader = command.ExecuteReader();
if (reader.Read())
{
string firstName = reader["FIRSTNAME"].ToString();
string lastName = reader["LASTNAME"].ToString();
}
reader.Close();
使用SqlNetFramework选择数据
SqlNetFramework
是一个软件开发工具,可帮助您更快、更轻松地开发.NET数据应用程序。只需一行代码,即可执行SQL文本命令和/或存储过程。您可以针对Microsoft SQL Server 2000+、Microsoft Access 97+、Oracle 10g+或任何支持通用Odbc和OleDb数据提供程序的其他数据库执行它们。SQL代码存储在独立的SQL数据存储区(XML文件、Microsoft SQL Server数据库、Oracle数据库)中。SqlNetFramework
允许您为框架中尚未包含的任何数据库服务器或SQL数据存储区实现您自己的功能。此工具可帮助您减少通常需要编写的代码量。有关更多信息,请阅读此处。
SqlNetFramework.CiOrderedDictionary parameterValues =
new SqlNetFramework.CiOrderedDictionary();
parameterValues.Add("FirstName", "Greg");
parameterValues.Add("LastName", "Gobind");
IDataReader reader = SqlNetFramework.Management.DbManager.Instance.ExecuteReader
(0, "MyConnection",
parameterValues);
if (reader.Read())
{
string firstName = reader["FIRSTNAME"].ToString();
string lastName = reader["LASTNAME"].ToString();
}
reader.Close();
如您所见,您可以选择针对数据库服务器的不同选项来选择数据。我认为我们需要使我们的项目尽可能简单。如果有可以帮助我们更快、更轻松地完成工作的开发工具,那么最好使用它们。
历史
- 2007年8月29日:初始发布