C# SQLHelper

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace CRM.BaseClass
{
class DB
{
#region 建立数据库连接
/// <summary>
/// 建立数据库连接.
/// </summary>
/// <returns>返回SqlConnection对象</returns>
public SqlConnection getcon()
{
string M_str_sqlcon = "Data Source=steve;Database=db_CRM;User id=sa;PWD=andylilin";
SqlConnection myCon = new SqlConnection(M_str_sqlcon);
return myCon;
}
#endregion

#region 执行SqlCommand命令
/// <summary>
/// 执行SqlCommand
/// </summary>
/// <param name="M_str_sqlstr">SQL语句</param>
public void getcom(string M_str_sqlstr)
{
SqlConnection sqlcon = this.getcon();
sqlcon.Open();
SqlCommand sqlcom = new SqlCommand(M_str_sqlstr, sqlcon);
sqlcom.ExecuteNonQuery();
sqlcom.Dispose();
sqlcon.Close();
sqlcon.Dispose();
}
#endregion

#region 创建DataSet对象
/// <summary>
/// 创建一个DataSet对象
/// </summary>
/// <param name="M_str_sqlstr">SQL语句</param>
/// <param name="M_str_table">表名</param>
/// <returns>返回DataSet对象</returns>
public DataSet getds(string M_str_sqlstr, string M_str_table)
{
SqlConnection sqlcon = this.getcon();
SqlDataAdapter sqlda = new SqlDataAdapter(M_str_sqlstr, sqlcon);
DataSet myds = new DataSet();
sqlda.Fill(myds, M_str_table);
return myds;
}
#endregion

#region 创建SqlDataReader对象
/// <summary>
/// 创建一个SqlDataReader对象
/// </summary>
/// <param name="M_str_sqlstr">SQL语句</param>
/// <returns>返回SqlDataReader对象</returns>
public SqlDataReader getread(string M_str_sqlstr)
{
SqlConnection sqlcon = this.getcon();
SqlCommand sqlcom = new SqlCommand(M_str_sqlstr, sqlcon);
sqlcon.Open();
SqlDataReader sqlread = sqlcom.ExecuteReader(CommandBehavior.CloseConnection);
return sqlread;
}
#endregion
}
}
### C# 中 `SqlHelper` 类的使用方法 #### 创建连接字符串 为了方便管理数据库连接,在应用程序中通常会创建一个静态的方法来获取连接字符串。这可以通过配置文件读取或硬编码实现。 ```csharp public static class SqlHelper { public static string GetConnectionStringSqlServer() { return "your_connection_string_here"; } } ``` 此部分展示了如何定义一个名为 `GetConnectionStringSqlServer` 的公共静态函数用于返回SQL Server 数据库的连接串[^2]。 #### 执行简单查询 当需要执行简单的 SELECT 查询时,可以利用 ADO.NET 提供的基础 API 或者像 Dapper 这样的微 ORM 来简化操作流程。下面的例子展示了一个基本的查询场景: ```csharp using System.Data.SqlClient; using Dapper; // 假设 Customer 是实体类 List<Customer> customers; using (var connection = new SqlConnection(SqlHelper.GetConnectionStringSqlServer())) { customers = connection.Query<Customer>("SELECT * FROM Customers").ToList(); } ``` 上述代码片段通过调用 `SqlHelper.GetConnectionStringSqlServer()` 方法获得连接对象并执行了一次无条件的选择语句,最终将结果集映射到列表类型的变量上[^1]。 #### 参数化查询防止注入攻击 对于带有输入参数的情况,则应该采用参数化的形式构建 SQL 语句以增强安全性。这里继续沿用了之前提到过的 Dapper 库作为例子: ```csharp string userName = "张三"; // 用户名来自安全验证后的来源 using (var connection = new SqlConnection(SqlHelper.GetConnectionStringSqlServer())) { var customer = connection.QueryFirstOrDefault<Customer>( @"SELECT TOP(1) * FROM Users WHERE Name = @name", new { name = userName }); } ``` 这段代码不仅实现了基于用户名查找用户的逻辑,还有效防范了潜在的 SQL 注入风险。 #### 更新数据记录 除了查询之外,有时也需要修改已有的表项内容。此时可借助命令模式完成更新动作: ```csharp int rowsAffected; using (var connection = new SqlConnection(SqlHelper.GetConnectionStringSqlServer())) { rowsAffected = connection.Execute( "UPDATE Products SET Price = @price WHERE Id = @id", new { price = 9.9m, id = productId }); } if(rowsAffected > 0){ Console.WriteLine("Update successful."); } else{ Console.WriteLine("No record was updated."); } ``` 该段程序尝试更改指定 ID 商品的价格,并反馈影响行数给用户知道操作是否成功。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值