退卡其实很简单,实体层不再过多的介绍,有个快捷键ctrl+R+E
IDAL层
namespace IDAL
{
public interface CancelCardIDAL
{
DataTable InquiryCardInfo(Entity.Card_Info CardInfo);
int InsertCancelInfo(Entity.Cancel_Info CancelCardInfo);
int DeleteStudentInfo(Entity.Student_Info StudentInfo);
int DeleteCardInfo(Entity.Card_Info CardInfo);
int DeleteUserInfo(Entity.User_Info UserInfo);
}
}
DAL层
namespace DAL
{
public class CancelCardDAL : IDAL.CancelCardIDAL
{
public DataTable InquiryCardInfo(Entity.Card_Info CardInfo)
{
SQLHelper sqlHelper = new SQLHelper();
SqlParameter[] sqlParams = { new SqlParameter("@CardNo",CardInfo.CardNo)};
string sql = @"select * FROM Card_Info WHERE CardNo=@CardNo";
DataTable InquiryCard = sqlHelper.ExecuteQuery(sql, sqlParams, CommandType.Text);
return InquiryCard;
}
public int InsertCancelInfo(Entity.Cancel_Info CancelInfo)
{
SQLHelper sqlHelper = new SQLHelper();
SqlParameter[] sqlParams = { new SqlParameter("@CardNo",CancelInfo.CardNo),
new SqlParameter("@CancelCash",CancelInfo.CancelCash),
new SqlParameter("@CancelDate",CancelInfo.CancelDate),
new SqlParameter("@UserID",CancelInfo.UserId),
new SqlParameter("@Computer",CancelInfo.Computer)};
string sql = @"insert into Cancel_Info(CardNo,CancelCash,CancelDate,UserID,Computer) values(@CardNo,@CancelCash,@CancelDate,@UserID,@Computer)";
int InsertCancel = sqlHelper.ExecuteNonQuery(sql,sqlParams,CommandType.Text);
return InsertCancel;
}
public int DeleteStudentInfo(Entity.Student_Info StudentInfo)
{
SQLHelper sqlHelper = new SQLHelper();
SqlParameter[] sqlParams = { new SqlParameter("@CardNo",StudentInfo.Cardno)};
string sql = "delete from Student_Info where CardNo=@CardNo";
int DeleteStudent = sqlHelper.ExecuteNonQuery(sql,sqlParams,CommandType.Text);
return DeleteStudent;
}
public int DeleteCardInfo(Entity.Card_Info CardInfo)
{
SQLHelper sqlHelper = new SQLHelper();
SqlParameter[] sqlParams = { new SqlParameter("@CardNo",CardInfo.CardNo)};
string sql = "delete from Card_Info where CardNo = @CardNo";
int DeleteCard = sqlHelper.ExecuteNonQuery(sql, sqlParams, CommandType.Text);
return DeleteCard;
}
public int DeleteUserInfo(Entity.User_Info UserInfo)
{
SQLHelper sqlHelper = new SQLHelper();
SqlParameter[] sqlParams = { new SqlParameter("@UserID",UserInfo.UserID)};
string sql = "delete from User_Info where UserID=@UserID";
int DeleteUser = sqlHelper.ExecuteNonQuery(sql, sqlParams, CommandType.Text);
return DeleteUser;
}
}
}
Factory层
namespace Factory
{
public class CancelCardFactory
{
string StrDB = System.Configuration.ConfigurationManager.AppSettings["DB"];
public IDAL.CancelCardIDAL CancelCardInfo()
{
string ClassName = StrDB + "." + "CancelCardDAL";
return (IDAL.CancelCardIDAL)Assembly.Load(StrDB).CreateInstance(ClassName);
}
}
}
BLL层
namespace BLL
{
public class CancelCardBLL
{
Factory.CancelCardFactory fact = new Factory.CancelCardFactory();
public bool InquiryCardInfo(Entity.Card_Info CardInfo)
{
IDAL.CancelCardIDAL Idal = fact.CancelCardInfo();
DataTable table = Idal.InquiryCardInfo(CardInfo);
bool flag;
if (table.Rows.Count == 0)
{
flag = false;
}
else
{
flag = true;
}
return flag;
}
public int InsertCancelInfo(Entity.Cancel_Info CancelInfo)
{
IDAL.CancelCardIDAL Idal = fact.CancelCardInfo();
int table = Idal.InsertCancelInfo(CancelInfo);
return table;
}
public int DeleteStudentInfo(Entity.Student_Info StudentInfo)
{
IDAL.CancelCardIDAL Idal = fact.CancelCardInfo();
int table = Idal.DeleteStudentInfo(StudentInfo);
return table;
}
public int DeleteCardInfo(Entity.Card_Info CardInfo)
{
IDAL.CancelCardIDAL Idal = fact.CancelCardInfo();
int table = Idal.DeleteCardInfo(CardInfo);
return table;
}
public int DeleteUserInfo(Entity.User_Info UserInfo)
{
IDAL.CancelCardIDAL Idal = fact.CancelCardInfo();
int table = Idal.DeleteUserInfo(UserInfo);
return table;
}
}
}
Facade层
namespace Facade
{
public class CancelCardFacade
{
public Boolean InquiryCardInfo(Entity.Card_Info CardInfo)
{
bool flag;
BLL.CancelCardBLL InquiryCardInfoBLL = new BLL.CancelCardBLL();
flag = InquiryCardInfoBLL.InquiryCardInfo(CardInfo);
return flag;
}
public int InsertCancelInfo(Entity.Cancel_Info CancelInfo)
{
BLL.CancelCardBLL InsertCancelInfoBLL = new BLL.CancelCardBLL();
int Cancel = InsertCancelInfoBLL.InsertCancelInfo(CancelInfo);
return Cancel;
}
public int DeleteStudentInfo(Entity.Student_Info StudentInfo)
{
BLL.CancelCardBLL DeleteStudentInfoBLL = new BLL.CancelCardBLL();
int Student = DeleteStudentInfoBLL.DeleteStudentInfo(StudentInfo);
return Student;
}
public int DeleteCardInfo(Entity.Card_Info CardInfo)
{
BLL.CancelCardBLL DeleteCardInfoBLL = new BLL.CancelCardBLL();
int Card = DeleteCardInfoBLL.DeleteCardInfo(CardInfo);
return Card;
}
public int DeleteUserInfo(Entity.User_Info UserInfo)
{
BLL.CancelCardBLL DeleteUserInfoBLL = new BLL.CancelCardBLL();
int User = DeleteUserInfoBLL.DeleteUserInfo(UserInfo);
return User;
}
}
}
UI层
namespace UI
{
public partial class CancelCard : Form
{
public CancelCard()
{
InitializeComponent();
}
private void CancelCard_Load(object sender, EventArgs e)
{
}
private void ButCancel_Click(object sender, EventArgs e)
{
if (TxtCardNo.Text.Trim() == "")
{
MessageBox.Show("卡号不能为空", "温馨提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
Login login = new Login();
Facade.CancelCardFacade faca = new Facade.CancelCardFacade();
//更新Cancel_Info
Entity.Cancel_Info CancelInfo = new Entity.Cancel_Info();
Entity.Card_Info CardInfo = new Entity.Card_Info();
CancelInfo.CardNo = TxtCardNo.Text.Trim();
CancelInfo.CancelCash = Convert.ToString(CardInfo.Balance);
CancelInfo.CancelDate = DateTime.Now;
CancelInfo.UserId = Login.UserID;
CancelInfo.Computer = System.Environment.MachineName;
Facade.CancelCardFacade facadeCancelInfo = new Facade.CancelCardFacade();
int intCancelInfo = facadeCancelInfo.InsertCancelInfo(CancelInfo);
//删除Student_Info中相关记录
Entity.Student_Info StudentInfo = new Entity.Student_Info();
StudentInfo.Cardno = TxtCardNo.Text.Trim();
Facade.CancelCardFacade facadeStudentInfo = new Facade.CancelCardFacade();
int intStudentInfo = facadeStudentInfo.DeleteStudentInfo(StudentInfo);
//删除Card_Info 中相关记录
//Entity.Card_Info CardInfo = new Entity.Card_Info();
CardInfo.CardNo = TxtCardNo.Text.Trim();
Facade.CancelCardFacade facadeCardInfo = new Facade.CancelCardFacade();
int intCardInfo = facadeCardInfo.DeleteCardInfo(CardInfo);
//删除User_Info中的相关记录
Entity.User_Info UserInfo = new Entity.User_Info();
UserInfo.UserID = TxtCardNo.Text.Trim();
Facade.CancelCardFacade facadeUserInfo = new Facade.CancelCardFacade();
int intUserInfo = facadeUserInfo.DeleteUserInfo(UserInfo);
//判断是否退卡成功
Boolean flag = false;
Facade.CancelCardFacade CancelFacade = new Facade.CancelCardFacade();
flag = faca.InquiryCardInfo(CardInfo);
if (flag != false)
{
MessageBox.Show("退卡失败");
}
else
{
LabShow.Text = "退卡卡号:" + TxtCardNo.Text + System.Environment.NewLine
+ "退卡金额:" + CancelInfo.CancelCash + System.Environment.NewLine
+ "退卡日期:" + DateTime.Now + System.Environment.NewLine
+ "操作教师:" + Login.UserID + System.Environment.NewLine
+ "操作机器:" + System.Environment.MachineName + System.Environment.NewLine;
MessageBox.Show("退卡成功");
TxtCardNo.Text = "";
}
}
}
}
小小心得:涉及很多表,一定要仔细,尤其大小写和Factory层,命名也很重要,最好复制一下,减少出错。