📜  ASP.NET WP-数据库(1)

📅  最后修改于: 2023-12-03 15:13:32.310000             🧑  作者: Mango

ASP.NET WP-数据库

ASP.NET WP是一个由微软推出的开发框架,其主要用途是快速搭建ASP.NET网站并进行开发维护。其中对于数据库的处理也是一个核心问题。本篇介绍ASP.NET WP中数据库的使用方式。

数据库连接

在ASP.NET WP中,连接数据库通常会使用ADO.NET。ADO.NET中最基本的类是Connection,用于建立与数据库的连接。代码如下:

using System.Data.SqlClient;

SqlConnection conn = new SqlConnection("Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;");
conn.Open();

其中,SqlConnection参数为连接字符串,包含服务器地址、数据库名、用户名和密码等信息。

执行SQL语句

连接成功后,我们可以通过SqlCommand执行SQL语句,例如:

SqlCommand cmd = new SqlCommand("SELECT * FROM Users WHERE UserName=@UserName AND Password=@Password", conn);
cmd.Parameters.AddWithValue("@UserName", userName);
cmd.Parameters.AddWithValue("@Password", password);
SqlDataReader reader = cmd.ExecuteReader();

在以上语句中,@UserName和@Password是参数化查询的方式,可以避免SQL注入攻击。

数据库操作

针对数据的操作,ADO.NET提供了很多类,比如:

  • SqlDataReader:用于读取数据
  • SqlDataAdapter:用于填充DataSet或DataTable
  • SqlCommandBuilder:根据SQL语句生成Update、Insert和Delete命令
  • DataSet:内存中的数据集合
  • DataTable:内存中的数据表
  • DataRow:内存中的数据行

通过这些类的组合使用,我们便可以轻松进行数据库操作了。例如:

SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Users", conn);
DataSet ds = new DataSet();
adapter.Fill(ds, "Users");
DataRow row = ds.Tables["Users"].Rows[0];
row["UserName"] = "newUserName";
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
adapter.Update(ds, "Users");

以上例子中,我们通过SqlDataAdapter和DataSet将数据库中的数据填充至内存中,通过DataRow对内存数据进行修改,最后再通过SqlCommandBuilder和DataAdapter将修改同步至数据库。

数据库事务

在进行数据库操作时,我们经常需要使用事务来保证数据的一致性。ADO.NET提供了Transaction类,并且可以通过SqlConnection的BeginTransaction方法创建事务。例如:

SqlTransaction transaction = conn.BeginTransaction();
try
{
    // 执行一系列操作
    SqlCommand cmd1 = new SqlCommand("UPDATE Users SET UserName=@NewUserName WHERE UserName=@UserName", conn, transaction);
    cmd1.Parameters.AddWithValue("@UserName", userName);
    cmd1.Parameters.AddWithValue("@NewUserName", newUserName);
    cmd1.ExecuteNonQuery();
    // 提交事务
    transaction.Commit();
}
catch (Exception ex)
{
    // 回滚事务
    transaction.Rollback();
}

以上代码中,我们通过SqlConnection.BeginTransaction创建了一个事务,执行了一系列操作,并且根据操作结果提交或回滚事务。

总结

关于ASP.NET WP中数据库的操作,以上只是列举了一些常用的方法和类。实际开发中,还可以通过LINQ to SQL、Entity Framework等ORM框架简化数据库操作。