C#,sql数据库的增删改查
来源:互联网 发布:淘宝账号查询信誉 编辑:程序博客网 时间:2024/04/30 02:21
数据库的增删改查,我通常的做法是:
通常新建一个config配置文件用来保存数据库连接字符串
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="DB" connectionString="server=.;database=ATMDB;uid=sa;pwd=123456"/>
</connectionStrings>
</configuration>
然后再建一个专门用来连接数据库的类DBHelper
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;
namespace Dals
{
public class DBHelper
{
public string connstr = ConfigurationManager.ConnectionStrings["db1"].ConnectionString;
private SqlConnection _conn;
public SqlConnection Conn
{
get
{
if (_conn == null)
_conn = new SqlConnection(connstr);
return _conn;
}
}
/// <summary>
/// 封装增删改操作代码
/// </summary>
/// <param name="sql">要执行的SQL语句或者存储过程名称</param>
/// <param name="type">命令类型</param>
/// <param name="paras">参数数组</param>
/// <returns></returns>
public bool ExecuteNonQuery(string sql, CommandType type, params SqlParameter[] paras)
{
int result = 0;
try
{
SqlCommand cmd = new SqlCommand(sql, Conn);
cmd.CommandType = type;
//判断是否存在参数
if (paras != null && paras.Length > 0)
cmd.Parameters.AddRange(paras);
Conn.Open();
result = cmd.ExecuteNonQuery();
}
catch
{ }
finally
{
Conn.Close();
}
return result > 0 ? true : false;
}
/// <summary>
/// 返回单行单列
/// </summary>
/// <param name="sql">要执行的SQL语句或者存储过程名称</param>
/// <param name="type">命令类型</param>
/// <param name="paras">参数数组</param>
/// <returns></returns>
public object ExecuteScale(string sql, CommandType type, params SqlParameter[] paras)
{
object result = null;
try
{
SqlCommand cmd = new SqlCommand(sql, Conn);
cmd.CommandType = type;
//判断是否存在参数
if (paras != null && paras.Length > 0)
cmd.Parameters.AddRange(paras);
Conn.Open();
result = cmd.ExecuteScalar();
}
catch { }
finally
{
Conn.Close();
}
return result;
}
/// <summary>
/// 返回DataReader,需要注意,获取完数据后,必须关闭DataReader对象
/// </summary>
/// <param name="sql">要执行的SQL语句或者存储过程名称</param>
/// <param name="type">命令类型</param>
/// <param name="paras">参数数组</param>
/// <returns></returns>
public SqlDataReader ExecuteDataReader(string sql, CommandType type, params SqlParameter[] paras)
{
SqlDataReader read = null;
try
{
SqlCommand cmd = new SqlCommand(sql, Conn);
cmd.CommandType = type;
//判断是否存在参数
if (paras != null && paras.Length > 0)
cmd.Parameters.AddRange(paras);
Conn.Open();
//CommandBehavior.CloseConnection:关闭DataReader对象时,自动关闭相应的连接池对象
read = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch
{ }
return read;
}
/// <summary>
/// 返回DataSet
/// </summary>
/// <param name="sql">要执行的SQL语句或者存储过程名称</param>
/// <param name="type">命令类型</param>
/// <param name="paras">参数数组</param>
/// <returns></returns>
public DataSet ExecuteDataSet(string sql, CommandType type, params SqlParameter[] paras)
{
DataSet ds = new DataSet();
try
{
SqlCommand cmd = new SqlCommand(sql, Conn);
cmd.CommandType = type;
//判断是否存在参数
if (paras != null && paras.Length > 0)
cmd.Parameters.AddRange(paras);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
}
catch { }
return ds;
}
/// <summary>
/// 封装带事务的增删改操作代码
/// </summary>
/// <returns></returns>
public bool ExecuteNonQuery(string sql, SqlConnection tranconn, SqlTransaction tran, CommandType type, params SqlParameter[] paras)
{
int result = 0;
try
{
SqlCommand cmd = new SqlCommand(sql, tranconn);
cmd.Transaction = tran;
cmd.CommandType = type;
//判断是否存在参数
if (paras != null && paras.Length > 0)
cmd.Parameters.AddRange(paras);
result = cmd.ExecuteNonQuery();
}
catch
{ }
return result > 0 ? true : false;
}
}
}
/// <summary>
/// 比如说是根据传过来的员工编号查员工
/// </summary>
/// <param name="empid">员工编号</param>
/// <returns>查询到的datatable数据集</returns>
public DataTable SearchEmp(string empid)
{
string sql;
if (empid.Equals(""))
{
sql = "select * from employee";
}
else
{
sql = "select * from employee where empNo='" + empid + "'";
}
return db.ExecuteDataSet(sql, CommandType.Text).Tables[0];
}
然后在点查询的时候:调用
DataTable dt = SearchEmp(this.txtEmpID.Text.Trim());
//查询出来了给你的DataGridView指定数据源,
dgvEmp.DataSource = dt;
//这样DataGridView里面就有值了。
//这是我通常的用法,一般都是用三层架构的,不过在这里简化了
通常新建一个config配置文件用来保存数据库连接字符串
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="DB" connectionString="server=.;database=ATMDB;uid=sa;pwd=123456"/>
</connectionStrings>
</configuration>
然后再建一个专门用来连接数据库的类DBHelper
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;
namespace Dals
{
public class DBHelper
{
public string connstr = ConfigurationManager.ConnectionStrings["db1"].ConnectionString;
private SqlConnection _conn;
public SqlConnection Conn
{
get
{
if (_conn == null)
_conn = new SqlConnection(connstr);
return _conn;
}
}
/// <summary>
/// 封装增删改操作代码
/// </summary>
/// <param name="sql">要执行的SQL语句或者存储过程名称</param>
/// <param name="type">命令类型</param>
/// <param name="paras">参数数组</param>
/// <returns></returns>
public bool ExecuteNonQuery(string sql, CommandType type, params SqlParameter[] paras)
{
int result = 0;
try
{
SqlCommand cmd = new SqlCommand(sql, Conn);
cmd.CommandType = type;
//判断是否存在参数
if (paras != null && paras.Length > 0)
cmd.Parameters.AddRange(paras);
Conn.Open();
result = cmd.ExecuteNonQuery();
}
catch
{ }
finally
{
Conn.Close();
}
return result > 0 ? true : false;
}
/// <summary>
/// 返回单行单列
/// </summary>
/// <param name="sql">要执行的SQL语句或者存储过程名称</param>
/// <param name="type">命令类型</param>
/// <param name="paras">参数数组</param>
/// <returns></returns>
public object ExecuteScale(string sql, CommandType type, params SqlParameter[] paras)
{
object result = null;
try
{
SqlCommand cmd = new SqlCommand(sql, Conn);
cmd.CommandType = type;
//判断是否存在参数
if (paras != null && paras.Length > 0)
cmd.Parameters.AddRange(paras);
Conn.Open();
result = cmd.ExecuteScalar();
}
catch { }
finally
{
Conn.Close();
}
return result;
}
/// <summary>
/// 返回DataReader,需要注意,获取完数据后,必须关闭DataReader对象
/// </summary>
/// <param name="sql">要执行的SQL语句或者存储过程名称</param>
/// <param name="type">命令类型</param>
/// <param name="paras">参数数组</param>
/// <returns></returns>
public SqlDataReader ExecuteDataReader(string sql, CommandType type, params SqlParameter[] paras)
{
SqlDataReader read = null;
try
{
SqlCommand cmd = new SqlCommand(sql, Conn);
cmd.CommandType = type;
//判断是否存在参数
if (paras != null && paras.Length > 0)
cmd.Parameters.AddRange(paras);
Conn.Open();
//CommandBehavior.CloseConnection:关闭DataReader对象时,自动关闭相应的连接池对象
read = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch
{ }
return read;
}
/// <summary>
/// 返回DataSet
/// </summary>
/// <param name="sql">要执行的SQL语句或者存储过程名称</param>
/// <param name="type">命令类型</param>
/// <param name="paras">参数数组</param>
/// <returns></returns>
public DataSet ExecuteDataSet(string sql, CommandType type, params SqlParameter[] paras)
{
DataSet ds = new DataSet();
try
{
SqlCommand cmd = new SqlCommand(sql, Conn);
cmd.CommandType = type;
//判断是否存在参数
if (paras != null && paras.Length > 0)
cmd.Parameters.AddRange(paras);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
}
catch { }
return ds;
}
/// <summary>
/// 封装带事务的增删改操作代码
/// </summary>
/// <returns></returns>
public bool ExecuteNonQuery(string sql, SqlConnection tranconn, SqlTransaction tran, CommandType type, params SqlParameter[] paras)
{
int result = 0;
try
{
SqlCommand cmd = new SqlCommand(sql, tranconn);
cmd.Transaction = tran;
cmd.CommandType = type;
//判断是否存在参数
if (paras != null && paras.Length > 0)
cmd.Parameters.AddRange(paras);
result = cmd.ExecuteNonQuery();
}
catch
{ }
return result > 0 ? true : false;
}
}
}
/// <summary>
/// 比如说是根据传过来的员工编号查员工
/// </summary>
/// <param name="empid">员工编号</param>
/// <returns>查询到的datatable数据集</returns>
public DataTable SearchEmp(string empid)
{
string sql;
if (empid.Equals(""))
{
sql = "select * from employee";
}
else
{
sql = "select * from employee where empNo='" + empid + "'";
}
return db.ExecuteDataSet(sql, CommandType.Text).Tables[0];
}
然后在点查询的时候:调用
DataTable dt = SearchEmp(this.txtEmpID.Text.Trim());
//查询出来了给你的DataGridView指定数据源,
dgvEmp.DataSource = dt;
//这样DataGridView里面就有值了。
//这是我通常的用法,一般都是用三层架构的,不过在这里简化了
- C#,sql数据库的增删改查
- My sql数据库的增删改查
- C#Winfrom数据库增删改查实例--SQL操作版
- sql的增删改查
- SQL的增删改查
- 数据库的增删改查
- 数据库的增删改查
- 数据库的增删改查
- 数据库的增删改查
- 数据库的增删改查
- 数据库的增删改查
- 数据库的增删改查
- 数据库的增删改查
- 数据库的增删改查
- 数据库的增删查改
- 数据库的增删查改
- 数据库的增删改查
- 数据库的增删改查
- jQuery boxy弹出层插件中文演示及讲解
- [转]clr 强命名程序集和共享程序集
- s3c2440外部中断操作
- linux内存中的__init和__exit宏
- spring 不用hibernate
- C#,sql数据库的增删改查
- S3C2440的中断寄存器
- jquery 等待效果
- Linux内核中的xx_initcall
- 详解公钥、私钥、数字证书的概念
- 掌握11个技巧 保护Wi-Fi无线网络安全
- JVM内存调优
- shell中的“%%”
- URL 编码乱码问题