wcf sqlhelper类怎么写
时间: 2023-12-02 07:02:14 浏览: 153
WCF(Windows Communication Foundation)是一种面向服务的框架,用于构建分布式系统。SqlHelper是一个用于访问和操作SQL Server数据库的辅助类,它封装了ADO.NET的一些操作,以简化对数据库的访问。
下面是一个简单的WCF SqlHelper类的示例代码:
```csharp
using System;
using System.Data;
using System.Data.SqlClient;
namespace WCFServiceLibrary
{
public class SqlHelper
{
private string connectionString;
public SqlHelper(string connectionString)
{
this.connectionString = connectionString;
}
public DataTable ExecuteDataTable(string commandText, CommandType commandType, params SqlParameter[] parameters)
{
DataTable dataTable = new DataTable();
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand command = new SqlCommand(commandText, connection))
{
command.CommandType = commandType;
if (parameters != null)
{
command.Parameters.AddRange(parameters);
}
using (SqlDataAdapter dataAdapter = new SqlDataAdapter(command))
{
dataAdapter.Fill(dataTable);
}
}
}
return dataTable;
}
public int ExecuteNonQuery(string commandText, CommandType commandType, params SqlParameter[] parameters)
{
int result = 0;
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand command = new SqlCommand(commandText, connection))
{
command.CommandType = commandType;
if (parameters != null)
{
command.Parameters.AddRange(parameters);
}
connection.Open();
result = command.ExecuteNonQuery();
}
}
return result;
}
public object ExecuteScalar(string commandText, CommandType commandType, params SqlParameter[] parameters)
{
object result = null;
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand command = new SqlCommand(commandText, connection))
{
command.CommandType = commandType;
if (parameters != null)
{
command.Parameters.AddRange(parameters);
}
connection.Open();
result = command.ExecuteScalar();
}
}
return result;
}
}
}
```
这个SqlHelper类包括了三个方法:
- ExecuteDataTable:执行SQL命令并返回一个DataTable对象。
- ExecuteNonQuery:执行SQL命令并返回受影响的行数。
- ExecuteScalar:执行SQL命令并返回结果集中的第一行第一列的值。
在实例化SqlHelper对象时,需要传递一个连接字符串作为参数。例如:
```csharp
SqlHelper sqlHelper = new SqlHelper("Data Source=localhost;Initial Catalog=MyDatabase;Integrated Security=True;");
```
然后就可以使用SqlHelper对象来访问和操作SQL Server数据库了。例如:
```csharp
// 查询数据
DataTable dataTable = sqlHelper.ExecuteDataTable("SELECT * FROM MyTable", CommandType.Text);
// 插入数据
SqlParameter[] parameters = new SqlParameter[]
{
new SqlParameter("@Name", "John"),
new SqlParameter("@Age", 30)
};
int result = sqlHelper.ExecuteNonQuery("INSERT INTO MyTable (Name, Age) VALUES (@Name, @Age)", CommandType.Text, parameters);
// 更新数据
SqlParameter[] parameters = new SqlParameter[]
{
new SqlParameter("@Name", "John"),
new SqlParameter("@Age", 31)
};
int result = sqlHelper.ExecuteNonQuery("UPDATE MyTable SET Age = @Age WHERE Name = @Name", CommandType.Text, parameters);
// 删除数据
SqlParameter[] parameters = new SqlParameter[]
{
new SqlParameter("@Name", "John")
};
int result = sqlHelper.ExecuteNonQuery("DELETE FROM MyTable WHERE Name = @Name", CommandType.Text, parameters);
```
注意:在实际应用中,应该对SqlHelper类进行更多的封装和优化,以提高代码的可维护性和性能。
阅读全文