1. 前言
在开发网页应用程序时,常常需要使用到数据库与网页进行连接。本文将介绍如何在ASP.NET网页应用程序中,连接到Microsoft SQL Server数据库,并进行简单的数据读写操作。
2. 准备工作
在开始之前,需要准备以下工具和环境:
2.1 Microsoft SQL Server
如果没有安装Microsoft SQL Server,可以从官网上下载并安装。安装之后,需要创建一个数据库和一张表,用于测试连接和数据读写操作。下面是一个简单的示例:
CREATE DATABASE testdb;
GO
USE testdb;
GO
CREATE TABLE testtable (
id INT PRIMARY KEY,
name VARCHAR(50)
);
GO
INSERT INTO testtable (id, name) VALUES (1, 'John');
INSERT INTO testtable (id, name) VALUES (2, 'Mary');
INSERT INTO testtable (id, name) VALUES (3, 'Tom');
2.2 Visual Studio
本文使用Visual Studio 2019作为开发工具,可以从官网上下载并安装。安装之后,打开Visual Studio,选择创建ASP.NET Web应用程序,并添加一个Web Form页面。
3. 添加连接字符串
连接字符串是用于指定如何连接到数据库的一组参数。在Web.config文件中,可以添加一个连接字符串,指定连接到Microsoft SQL Server的方式。下面是一个示例:
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=SERVER_NAME;Initial Catalog=DATABASE_NAME;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
其中,SERVER_NAME和DATABASE_NAME需要分别替换为Microsoft SQL Server的实际地址和数据库名称。此处使用了Windows身份验证,因此Integrated Security=True。
4. 连接数据库
在Web Form页面的代码中,可以使用SqlConnection类连接到数据库,并执行一些基本的查询操作。下面是一个示例:
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// 创建连接对象
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))
{
// 打开连接
connection.Open();
// 执行查询
SqlCommand command = new SqlCommand("SELECT * FROM testtable", connection);
SqlDataReader reader = command.ExecuteReader();
// 遍历结果
while (reader.Read())
{
int id = (int)reader["id"];
string name = (string)reader["name"];
Response.Write(id + " " + name + "<br/>");
}
}
}
}
使用using关键字,可以自动释放连接对象,避免资源浪费。在Page_Load事件中连接数据库,并查询testtable表的所有数据。使用SqlDataReader类读取查询结果,并在网页上输出。
5. 插入数据
除了查询数据,还可以向数据库中插入数据。下面是一个示例:
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// 创建连接对象
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))
{
// 打开连接
connection.Open();
// 插入数据
SqlCommand command = new SqlCommand("INSERT INTO testtable (id, name) VALUES (4, 'Jerry')", connection);
command.ExecuteNonQuery();
// 查询数据
command = new SqlCommand("SELECT * FROM testtable", connection);
SqlDataReader reader = command.ExecuteReader();
// 遍历结果
while (reader.Read())
{
int id = (int)reader["id"];
string name = (string)reader["name"];
Response.Write(id + " " + name + "<br/>");
}
}
}
}
在插入数据之前,先连接到数据库。使用SqlCommand类执行INSERT语句,插入一行数据。然后再次查询数据,并输出结果。可以看到,新插入的数据已经成功地添加到了testtable表中。
6. 更新数据
除了插入数据,还可以更新数据。下面是一个示例:
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// 创建连接对象
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))
{
// 打开连接
connection.Open();
// 更新数据
SqlCommand command = new SqlCommand("UPDATE testtable SET name = 'Jerry Li' WHERE id = 4", connection);
command.ExecuteNonQuery();
// 查询数据
command = new SqlCommand("SELECT * FROM testtable", connection);
SqlDataReader reader = command.ExecuteReader();
// 遍历结果
while (reader.Read())
{
int id = (int)reader["id"];
string name = (string)reader["name"];
Response.Write(id + " " + name + "<br/>");
}
}
}
}
在更新数据之前,先连接到数据库。使用SqlCommand类执行UPDATE语句,更新指定行的数据。然后再次查询数据,并输出结果。可以看到,id为4的行的name字段已经从Jerry变为Jerry Li。
7. 删除数据
除了更新数据,还可以删除数据。下面是一个示例:
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// 创建连接对象
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))
{
// 打开连接
connection.Open();
// 删除数据
SqlCommand command = new SqlCommand("DELETE FROM testtable WHERE id = 4", connection);
command.ExecuteNonQuery();
// 查询数据
command = new SqlCommand("SELECT * FROM testtable", connection);
SqlDataReader reader = command.ExecuteReader();
// 遍历结果
while (reader.Read())
{
int id = (int)reader["id"];
string name = (string)reader["name"];
Response.Write(id + " " + name + "<br/>");
}
}
}
}
在删除数据之前,先连接到数据库。使用SqlCommand类执行DELETE语句,删除指定行的数据。然后再次查询数据,并输出结果。可以看到,id为4的行已经被成功删除了。
8. 总结
通过以上的示例,可以看到如何在ASP.NET网页应用程序中,连接到Microsoft SQL Server数据库,并进行简单的数据读写操作。