C#中的增删改查

来源:互联网 发布:大连理工大学网络教育 编辑:程序博客网 时间:2024/05/01 23:37

敲三层的时候我只敲了三层的登录界面,结果改七层把登录改完了,换了注册时候犯了难,因为将U层的数据写到数据库时候不会写,虽然思想一样,但是语句不一样啊,写法和查到的博客也都不一样,因为大神们的博客全是用VB.NET写的,哎我这个只是单纯的用到了的菜鸟又得啃食了,所以下了很大的决定,再把三层从头来过,so,至今我还在三层耕耘。话说耕耘了这么长的时间,总得有点自己的收获吧,所以就要总结一番了。


查这个语句算是很简单的了,三层登录视频上也有源码,上上篇博客C#版机房登录中也有介绍,再次不在赘述。


增这个语句可得好好的说说,因为我的痛苦便是从这而来,所以才有了这篇费劲啃来的博客,小伙伴们可是有福享喽。
首先看思路U层输入数据,点击存储后,开始执行B层代码,B层我使用的是实体,所以在B层将数据全部赋值给实体(到D层就简单了,在D层只是调用实体就可以了),D层首先进行卡号的查询,如果卡号被在数据库中查询到则进行提示卡号已经存在,如果卡号未在数据库中查询到则进行注册,将数据写入数据库后进行提示注册成功。

U层

private void btnOk_Click(object sender, EventArgs e)        {            //卡号不能为空            if (txtCardNo.Text.Trim() == "")            {                MessageBox.Show("卡号不能为空");                return;            }            //学号不能为空            if (txtStudentNo.Text.Trim()=="")            {                MessageBox.Show("学号不能为空");                return;            }            //、、、重复不能为空的Text语句进行提示            //卡号不为空            Entity.cardInfo cardInfo = new Entity.cardInfo();            BLL.RegistServer CardNo = new BLL.RegistServer();            //文本框内容传给实体            cardInfo.cardNO = txtCardNo.Text.Trim();            cardInfo.studentNO = txtStudentNo.Text.Trim();            cardInfo.staute = cmbStatus.Text;            cardInfo.lastMoney = Convert.ToDecimal(txtRechargeNum.Text);            cardInfo.type = cmbType.Text;            cardInfo.isCheck = cmbIsCheck.Text;            cardInfo.user = txtUserID.Text;            cardInfo = CardNo.CheckCardNo(cardInfo);            if (cardInfo != null)            {                MessageBox.Show("恭喜,注册成功!");            }            if (cardInfo == null)            {                MessageBox.Show("对不起,该账号已存在!");            }                    }

B层

 #region 查询卡的方法        public Entity.cardInfo CheckCardNo(Entity.cardInfo CardNo)        {            DAL.CardDAO CardDAO = new DAL.CardDAO();            Entity.cardInfo cardInfo = new Entity.cardInfo();            //U层数据赋给传值的实体            cardInfo.cardNO = CardNo.cardNO;            cardInfo.studentNO = CardNo.studentNO;            cardInfo.staute = CardNo.staute;            cardInfo.lastMoney = CardNo.lastMoney;            cardInfo.type = CardNo.type;            cardInfo.isCheck = CardNo.isCheck;            cardInfo.user = CardNo.user;            cardInfo = CardDAO.SelectCardNO(CardNo);//调用D层注册查询卡的方法            return cardInfo;        }        #endregion

D层

 #region // 注册查询卡信息        public Entity.cardInfo SelectCardNO(Entity.cardInfo cardInfo)        {            using (SqlConnection conn = new SqlConnection(CtDB.ConnString))            {                SqlCommand cmd = conn.CreateCommand();                cmd.CommandText = "select * from card where cardNO=@cardNO";//查询卡语句                cmd.CommandType = CommandType.Text;                cmd.Parameters.Add(new SqlParameter("@cardNO", cardInfo.cardNO));                                Entity.cardInfo cards = new Entity.cardInfo();                conn.Open();//打开数据连接                SqlDataReader reader = cmd.ExecuteReader();                reader.Read();//进行数据库查询                try                {                                        AddCard(cardInfo);//调用写入数据库的方法                }                catch                {                    cards = null;                    return cards;                }                return cards;            }        }        #endregion #region  //写入数据库的方法        private Entity.cardInfo AddCard(Entity.cardInfo cardInfo)        {            using (SqlConnection conn = new SqlConnection(CtDB.ConnString))            {                SqlCommand cmd = conn.CreateCommand();                //写入的语句                cmd.CommandText = "insert into card values(@cardNO,@studentNO,@statue,@lastMoney,@type,@isCheck,@userID)";                cmd.CommandType = CommandType.Text;                //写入的内容                cmd.Parameters.Add(new SqlParameter("@cardNO", cardInfo.cardNO));                cmd.Parameters.Add(new SqlParameter("@studentNO", cardInfo.studentNO));                cmd.Parameters.Add(new SqlParameter("@statue", cardInfo.staute));                cmd.Parameters.Add(new SqlParameter("@lastMoney", cardInfo.lastMoney));                cmd.Parameters.Add(new SqlParameter("@type", cardInfo.type));                cmd.Parameters.Add(new SqlParameter("@isCheck", cardInfo.isCheck));                cmd.Parameters.Add(new SqlParameter("@userID", cardInfo.user));                conn.Open();//打开数据连接                cmd.ExecuteNonQuery();//执行写入语句                return cardInfo;            }        }        #endregion

至此,我探索的完整的插入数据就结束了,下面看看删除吧。


说起删呢,想到了,最近情人节,就算情人节也别将就自己,不喜欢了就删了他,哈哈。。。
删呢和上述的是很相似的,所以代码也就不贴了,只把简单的语句写出来供学习。

string MyDelete="Delete from card where cardID="+TextBox1.Text;SqlCommand MyCommand=new SqlCommand(MyDelete,MyConnection);//异常处理try{MyConnection.Open();MyCommand.ExecuteNonQuery();MyConnection.Close();txtCardID.Text="";}catch(Exception ex){Console.WriteLine("{0} Exception caught.", ex);}

改和删和增还是类似的,所以下面的话你懂得。。。

string MyUpdate="Update card set studentNO='"+studentNO+"',type='"+type+"' where cardIDID="+txtCardID.Text;SqlCommand MyCommand=new SqlCommand(MyUpdate,MyConnection);try{MyConnection.Open();MyCommand.ExecuteNonQuery();MyConnection.Close();txtCardID.Text="";}catch(Exception ex){Console.WriteLine("{0} Exception caught.", ex);}

写了这么多,最想说的一句话就是:不懂一定得硬着脸皮去问去查去探索啊。培养死不要脸的革命精神,哈哈,都懂得!!!

0 0