-- 事务
begin transaction
增删改事务
if(@myError = 0)
begin
commit
end
else
begin
rollback
end
-- 存储过程:将一个执行过程封装成一个名字
/* procedure
create proc[edure] 存储过程名字
参数 as 类型 [默认值|output]
as
begin
代码
end
*/
/* 存储过程的try catch
begin try
end try
begin catch
end catch
*/
exec -- 执行存储过程
-- 触发器:一个特殊的存储过程,执行某一个操作而自动的触发,就像事件
-- 监视操作
-- 补充约束
/*
create trigger tr_类型_触法器的名字 on 表名
触法类型:after | instead of
操作类型:insert | delete | update
as
begin
代码
end
*/
/* 连接数据库*/
//1.准备连接字符串
string connStr = @"server=ip\实例名;database=数据库;uid=sa;pwd=123;";// 数据库服务实例名、连接的数据库、验证的凭证(用户名|密码)
//2.准备sql语句
string sql = "";
//3.创建连接对象
SqlConnection conn = new SqlConnection(connStr);
//4.创建执行对象
SqlCommand cmd = new SqlCommand(sql,conn);
//5.打开连接
conn.Open();
//6.执行操作
int count = cmd.ExecuteNonQuery();
//7.关闭
conn.Dispose();
cmd.Dispose();
/* 四个模型 */
int ExecuteQuery(){
执行非查询语句,返回受影响的行数,如果执行的是非增删改操作返回-1
}
Object ExecuteScalar (){
返回查询的第一行第一列的结果,不存在返回;
一般与聚合函数连用
}
SqlDataReader cmd.ExecuteReader(){
读取数据库文件
Read()方法
索引、FieldCount字段数
}
DataSet GetDataSet(){
SQLDataAdapter sda = new SqlDataAdapter(sql语句,连接字符串){
sda.Fill(DataSet对象);
//DataGridView控件.DataSource属性
}
/* SQLHelper */
//封装数据库操作,方法、参数、模式,提供sql语句或参数,得到结果
// 提供执行方法
public class SQLHelper
{
// 连接字符串
static string connStr = ConfigurationManager.ConnectionStrings["sql"].ConnectionString;
/// <summary>
/// 实现非查询操作(增删改),返回受影响行数,否则返回-1
/// </summary>
/// <param name="sql"></param>
/// <param name="ps">可变参数</param>
/// <returns></returns>
public static int ExecuteNonQuery(string sql, params SqlParameter[] ps)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.AddRange(ps);
conn.Open();
return cmd.ExecuteNonQuery();
}
}
}
public static object ExecuteScalar(string sql, params SqlParameter[] ps)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.AddRange(ps);
conn.Open();
return cmd.ExecuteScalar();
}
}
}
public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] ps)
{
SqlConnection conn = new SqlConnection(connStr);
try
{
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.AddRange(ps);
conn.Open();
return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
}
}
catch (Exception ex)
{
conn.Dispose();
throw ex;
}
}
public static DataSet GetDataSet(string sql, params SqlParameter[] ps)
{
DataSet ds = new DataSet();
using (SqlDataAdapter sda = new SqlDataAdapter(sql, connStr))
{
sda.SelectCommand.Parameters.AddRange(ps);
sda.Fill(ds);
}
return ds;
}
}