1. 程式人生 > 其它 >sql和完善三層架構

sql和完善三層架構

新新增一個proc

create proc del_class2 @id int
as
begin tran
declare @error int=0
delete from StudentInfo where cid=@id
set @error+=@@ERROR
delete from ClassInfo where id=@id
set @error+=@@ERROR
if @error<>0
rollback tran
else
commit tran
go

//刪除cid和id都是15的資料

exec del_class2 15

DALclass1 新增一個引數

public static int NonQuery(string sql,CommandType type=CommandType.Text,params SqlParameter[]sqlParameters)
{
int num = 0;
using (SqlConnection con = new SqlConnection(constr))
{

using (SqlCommand cmd = new SqlCommand(sql, con))
{
cmd.CommandType = type;
try
{
if (sqlParameters.Length > 0)
{
//如果有則建立一個數組把引數放進去
cmd.Parameters.AddRange(sqlParameters);
}
con.Open();
num = cmd.ExecuteNonQuery();
}
finally
{
if (con.State == ConnectionState.Open)
{
con.Close();
}
}
return num;
}

DAL

//sqlParameters:命名引數和直接傳引數CommandType.StoredProcedure一樣

public static int Insert(ClassInfo info)
{
var sql = "insert into classinfo values(@name,@content)";
SqlParameter[] sqlParameters = new SqlParameter[]
{
new SqlParameter("@name",info.Name),
new SqlParameter("@content",info.Content)
};
return Class1.NonQuery(sql,sqlParameters:

sqlParameters);
}