C#中的增刪改查

敲三層的時候我只敲了三層的登錄界面,結果改七層把登錄改完了,換了註冊時候犯了難,因爲將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);
}

寫了這麼多,最想說的一句話就是:不懂一定得硬着臉皮去問去查去探索啊。培養死不要臉的革命精神,哈哈,都懂得!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章