using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
namespace NewPatientPalnPrj
{
public class DBHelp
{
public SqlConnection getCon()
{
SqlConnection con = new SqlConnection();
//con.ConnectionString = @"server=QGP;database=patientdb;Trusted_Connection=SSPI;";//数据库设置为WINDOWS登陆
con.ConnectionString = @"server=20110217-1009;database=patientdb;uid=sa;pwd=123456;";
//必须用Trusted_Connection=SSPI来代替userid=**;password=**
//使用 ConnectionString 所指定的属性设置打开数据库连接
con.Open();
return con;
//}
}
//数据库修改,删除,添加方法
public int ExecSql(string sql)
{
using (SqlConnection con = getCon())
{
//SqlCommand表示要对 SQL Server 数据库执行的一个 Transact-SQL 语句或存储过程
SqlCommand cmd = new SqlCommand();
//与数据源的连接。默认值为 null。
cmd.Connection = con;
//获取或设置要对数据源执行的 Transact-SQL 语句、表名或存储过程
cmd.CommandText = sql;
//对连接执行 Transact-SQL 语句并返回受影响的行数
return cmd.ExecuteNonQuery();
}
}
//数据库查询方法
public DataTable ExecQry(string sql)
{
using (SqlConnection con = getCon())
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = sql;
//SqlDataAdapter表示用于填充 DataSet 和更新 SQL Server 数据库的一组数据命令和一个数据库连接
//SqlDataAdapter 是 DataSet 和 SQL Server 之间的桥接器,用于检索和保存数据。SqlDataAdapter
//通过对数据源使用适当的 Transact-SQL 语句映射 Fill(它可更改 DataSet 中的数据以匹配数据源
//中的数据)和 Update(它可更改数据源中的数据以匹配 DataSet 中的数据)来提供这一桥接
SqlDataAdapter dap = new SqlDataAdapter();
//DataTable表示内存中数据的一个表
DataTable dt = new DataTable();
dap.SelectCommand = cmd;//获取或设置一个 Transact-SQL 语句或存储过程,用于在数据源中选择记录
dap.Fill(dt);// 填充 DataSet 或 DataTable
return dt;
}
}
/// <summary>
/// 执行增删改存储过程,参数类型:string Pname存储过程名称,
/// Dictionary<string, string> dic作为删除和修改时的条件
/// </summary>
/// <param name="Pname"></param>
/// <param name="?"></param>
/// <returns></returns>
public int ExecNq(string Pname, Dictionary<string, string> dic)
{
SqlConnection con = getCon();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = Pname;
foreach (string k in dic.Keys)
{
SqlParameter sp = new SqlParameter();
sp.ParameterName = k;
sp.Value = dic[k].ToString();
//参数类型是输入
sp.Direction = ParameterDirection.Input;
cmd.Parameters.Add(sp);
}
int cnt = cmd.ExecuteNonQuery();
con.Close();
return cnt;
}
/// <summary>
/// 数据库查询方法返回首行首列数据 **2011-03-18**
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public int ExecQry2(string sql)
{
using (SqlConnection con = getCon())
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = sql;
int count = Int32.Parse(cmd.ExecuteScalar().ToString());//返回单一的结果集第一行第一列
return count;
}
}
/// <summary>
/// 查询
/// </summary>
/// <param name="Pname"></param>
/// <param name="dic"></param>
/// <returns></returns>
public DataTable ExecRe(string Pname, Dictionary<string, string> dic)
{
SqlConnection con = getCon();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = Pname;
DataTable dt = new DataTable();
//查询全部
if (dic == null)
{
SqlDataAdapter dap = new SqlDataAdapter();
dap.SelectCommand = cmd;
dap.Fill(dt);
con.Close();
return dt;
}
else
{
SqlParameter sp = new SqlParameter();
foreach (string k in dic.Keys)
{
sp.ParameterName = k;
sp.Value = dic[k].ToString();
sp.Direction = ParameterDirection.Input;
cmd.Parameters.Add(sp);
}
SqlDataAdapter dap = new SqlDataAdapter();
dap.SelectCommand = cmd;
dap.Fill(dt);
con.Close();
return dt;
}
}
}
}