四、ASP.NET Web服务的数据访问
- SQL Server数据库连接
在ASP.NET Web服务中,通过ADO.NET实现与SQL Server数据库的连接。首先需要在Web.config文件中配置数据库连接字符串,如下所示:
<configuration>
<connectionStrings>
<add name="connString" connectionString="Data Source=.;Initial Catalog=YourDatabase;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
<!-- 其他配置 -->
</configuration>
2.数据访问对象(DAO)
为了简化数据库操作,ASP.NET提供了数据访问对象(DAO)的方式。通过DAO,可以方便地执行SQL查询、插入、更新和删除等操作。以下是一个简单的DAO示例:
using System.Data;
public DataTable GetDataFromDatabase()
{
DataTable dataTable = new DataTable();
SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["connString"].ConnectionString);
SqlCommand command = connection.CreateCommand();
command.CommandText = "SELECT * FROM YourTable";
SqlDataAdapter dataAdapter = new SqlDataAdapter(command);
dataAdapter.Fill(dataTable);
connection.Close();
return dataTable;
}
- LINQ to SQL
LINQ(Language Integrated Query)是一种强类型的查询技术,可以用于查询对象、集合和数据库。在ASP.NET Web服务中,通过LINQ to SQL可以方便地操作数据库。以下是一个使用LINQ查询数据库的示例:
using System.Data.SqlClient;
using System.Linq;
public IEnumerable<YourEntity> GetDataFromDatabase()
{
string connectionString = ConfigurationManager.ConnectionStrings["connString"].ConnectionString;
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand command = connection.CreateCommand();
command.CommandText = "SELECT * FROM YourTable";
using (SqlDataReader dataReader = command.ExecuteReader())
{
while (dataReader.Read())
{
YourEntity entity = new YourEntity();
entity.Property1 = dataReader["Property1"];
entity.Property2 = dataReader["Property2"];
//填充其他属性
yield return entity;
}
}
connection.Close();
}
}
五、ASP.NET Web服务的文件处理
1.文件上传
ASP.NET提供了文件上传的功能,允许用户上传文件到服务器。以下是一个简单的文件上传示例:
<form id="uploadForm" enctype="multipart/form-data">
<input type="file" id="fileInput" />
<button type="submit">上传</button>
</form>
<script>
document.getElementById("uploadForm").addEventListener("submit", function (event)
{
event.preventDefault();
var file = document.getElementById("fileInput").files[0];
var formData = new FormData();
formData.append("file", file);
formData.append("uploadButton", "上传");
var xhr = new XMLHttpRequest();
xhr.open("POST", "UploadFile.ashx", true);
xhr.onreadystatechange = function ()
{
if (xhr.readyState ==4 && xhr.status ==200)
{
alert(xhr.responseText);
}
};
xhr.send(formData);
});
</script>
2.文件下载
ASP.NET提供了文件下载的功能,允许用户从服务器下载文件。以下是一个简单的文件下载示例:
“`ashx
using System;
using System.IO;
using System.Web;
public class FileDownloadHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string filePath = Server.MapPath(“~/Files/YourFile.txt”);
if (File.Exists(filePath))
{