65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.86/5 (4投票s)

2007年8月29日

CPOL

2分钟阅读

viewsIcon

26193

本文简要介绍了可帮助您使用SQL和.NET选择数据的开发工具。

引言

在本文中,我将向您展示可以使用哪些不同的开发工具来使用SQL和.NET从数据库服务器检索数据。由于这是.NET数据应用程序中非常常见的任务,我认为了解可用的替代方案以使我们的工作更容易是一件好事。

本文中包含的示例非常简单。我将简要说明每个开发工具。如果您需要更多详细信息,可以访问相应的网站。对于以下示例,我假设您有一个名为User的表,其中包含两个字段:FirstNameLastName。我假设您正在使用Microsoft SQL Server。

代码片段是用C#编写的,但您可以使用任何.NET语言。

从头开始选择数据

您检索数据的第一个选项是使用.NET Framework提供的数据库访问类。下面的示例显示了如何根据FirstNameLastName检索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日:初始发布
© . All rights reserved.