Windows 窗體應用程序——圖書管理系統總結(不帶數據庫操做

Windows 窗體應用程序——圖書管理系統總結(不帶數據庫操做)數據庫

 

圖書管理系統簡介windows

 

實現功能:在windows Form平臺上實現圖書的添加、修改、刪除功能函數

 

 

附圖1:this

圖書管理系統主界面:編碼

 

 

 

 

附圖2:orm

圖書管理系統修改圖書界面:對象

 

 

 

 

 

功能實現:blog

分析圖書管理系統主界面rem

對象分析:同步

Models 實例類

一、 圖書類。圖書對象的屬性:圖書編號、圖書名稱、圖書價格、出版社、出版日期

二、 出版社類。用來存儲出版社下拉框對象。出版社類的屬性:出版社編號、出版社名稱

功能分析:

圖書管理系統主界面:實現按鈕功能:

一、 添加圖書

步驟分析:用戶在控件中輸入內容,點擊按鈕「添加圖書」後。數據同步顯示在下面的DataGridView控件中。

二、 修改圖書  

步驟分析:用戶在DataGridView中選中一條記錄,單擊按鈕「修改圖書」後,跳轉到圖書管理系統修改界面。在修改界面中展現要修改的圖書對象。修改完成以後。點擊按鈕「提交」後,返回主界面顯示修改完的內容。

三、 刪除圖書

步驟分析:用戶在DataGridView中選中一條記錄,單擊按鈕「刪除圖書」,彈出是否刪除提示信息。確認刪除後,該記錄在DataGridView中移除

 

圖書管理系統修改界面:實現按鈕功能:

一、 提交修改

步驟分析:用戶點擊「提交」按鈕後,修改後的圖書內容返回主界面顯示

 

 

具體實現

準備工做:製做兩個窗體。主界面窗體(FrmMainBook.cs)修改界面窗體(FrmEditBook.cs)

注意

一、時間日期控件。修改屬性:Format: 默認是Long 格式:2018年3月31日須要改成 short 格式:2018/3/31

二、 下拉框控件顯示出版社名稱實際存儲出版社編號。具體參照下面出版社下拉框初始化方法

三、 DataGridView控件。添加中文顯示列。而且修改列的屬性與圖書對象屬性對應。綁定數據源爲圖書的屬性,詳見附圖3

 

 

 

 

 

 

 

附圖3

 

 

 

 

 

 

1、添加圖書功能

步驟一:構造函數初始化

初始化內容:

一、 出版社下拉框初始化

二、 DataGridView自動生成列屬性修改

 

  public FrmMainBook()

        {

            InitializeComponent();

            //初始化出版社

            InitPublisher();

            this.dgvBookList.AutoGenerateColumns = false;//不容許 DataGridView自動生成列

}

//初始化出版社

private void  InitPublisher()

        {

            //封裝出版社對象,運用集合初始化器和對象初始化器賦予出版社下拉框固定值

            List<Publisher> publisherList = new List<Publisher>()

            {

                new Publisher() {PublisherId=1,PublisherName="北京出版社" },

                new Publisher() {PublisherId=2,PublisherName="上海出版社" },

                new Publisher() {PublisherId=3,PublisherName="南京出版社" },

                new Publisher() {PublisherId=4,PublisherName="山東出版社" },

                new Publisher() {PublisherId=5,PublisherName="天津出版社" },

            };

            //設置數據源

            this.cboxPubliserId.DataSource = publisherList;

            this.cboxPubliserId.DisplayMember = "PublisherName"; //設置下拉框顯示名稱

            this.cboxPubliserId.ValueMember = "PublisherId";  //設置下拉框提交值成員

            this.cboxPubliserId.SelectedIndex = -1; //下拉框開始顯示空

        

 

        }

步驟二;添加圖書按鈕

private void btnAdd_Click(object sender, EventArgs e)

        {

            // [1] 檢查數據、驗證數據

            if(txtBarCode.Text.Trim()==" " || txtBarCode.TextLength == 0)

            {

                MessageBox.Show("圖書編碼不能爲空!", "提示");

                txtBarCode.Focus();//將光標移到圖書編碼控件

                return;

            }

            // [2] 封裝對象(將用戶輸入的內容轉換爲對象)

            Book book = new Book()

            {

                BarCode = this.txtBarCode.Text,

                BookName = this.txtBookName.Text,

                Price = Convert.ToDouble(this.txtPrice.Text),

                PublisherId =Convert.ToInt32(cboxPubliserId.SelectedValue),//注意獲取下拉框控件的值

                PublishDate=Convert.ToDateTime(this.dtpPublishDate.Text)

            };

            // [3] 將對象保存到數據源(多數狀況是數據庫、也能夠是其餘數據源)

            // [4] 顯示數據

           

            bookList.Add(book);

            //設置數據源

            this.dgvBookList.DataSource = null;

            this.dgvBookList.DataSource = bookList;

 

            //清空數據

            this.txtBarCode.Clear();

            this.txtBookName.Clear();

            this.txtPrice.Clear();

            this.cboxPubliserId.SelectedIndex = -1;

            this.txtBarCode.Focus();

        }

 

 

 

2、修改圖書

 

主界面(FrmMainBook.cs):

private void btnEdit_Click(object sender, EventArgs e)

        {

           

            //[1]驗證 若是當前dgv沒有數據,則不執行任何操做

            if (this.dgvBookList.CurrentRow ==null || this.dgvBookList.RowCount == 0)

            {

                MessageBox.Show("請選擇有效行", "提示");

                return;

            }

            //[2]獲取當前修改的對象,首先找到圖書條碼,而後在dgv中找到當前對象

            String barCode = this.dgvBookList.CurrentRow.Cells["BarCode"].Value.ToString();

            Book objBook = (from b in bookList where b.BarCode.ToString().Equals(barCode) select b).First<Book>();

            //[3]顯示要修改的窗體 把對象傳到修改窗體中,這裏不能用show方法要用ShowDialog()方法。註釋:用Show()方法的話點擊關閉也會繼續執行

            FrmEditBook edit = new FrmEditBook(objBook);

            DialogResult result= edit.ShowDialog();

 

            //[4]根據修改是成功來斷定是否顯示

            if (result == DialogResult.OK)

            {

                //首先獲取修改後的對象

                Book book =(Book) edit.Tag;

                //從新綁定當前行的值

                Book editBook = (from b in bookList where b.BarCode.ToString().Equals(barCode) select b).First<Book>();

                editBook.BarCode = book.BarCode;

                editBook.BookName = book.BookName;

                editBook.Price = book.Price;

                editBook.PublishDate = book.PublishDate;

                editBook.PublisherId = book.PublisherId;

                //刷新修改窗體

                this.dgvBookList.Refresh();

 

            }

         

        }

 

修改窗體(FrmEditBook.cs)

public partial class FrmEditBook : Form

    {

        public FrmEditBook()

        {

            InitializeComponent();

           

        }

        /// <summary>

        /// 構造方法傳入主界面參數,並顯示要修改的圖書信息

        /// </summary>

        public FrmEditBook(Book objBook)

        {

            InitializeComponent();

            //初始化出版社下拉框

            InitPublisher();

            //顯示圖書信息。把傳過來的圖書對象轉化到控件中

            this.txtBarCode.Text= objBook.BarCode;

            this.txtBookName.Text = objBook.BookName;

            this.txtPrice.Text = objBook.Price.ToString();

            this.dtpPublishDate.Text = objBook.PublishDate.ToShortDateString();//時間要用ToShortDateString()

            //給下拉框賦值

            this.cboxPubliserId.SelectedValue = objBook.PublisherId;

 

 

        }

 

        /// <summary>

        /// 初始化出版社

        /// </summary>

        private void InitPublisher()

        {

            List<Publisher> publisherList = new List<Publisher>()

            {

                new Publisher() {PublisherId=1,PublisherName="北京出版社" },

                new Publisher() {PublisherId=2,PublisherName="上海出版社" },

                new Publisher() {PublisherId=3,PublisherName="南京出版社" },

                new Publisher() {PublisherId=4,PublisherName="山東出版社" },

                new Publisher() {PublisherId=5,PublisherName="天津出版社" },

            };

            //設置數據源

            this.cboxPubliserId.DataSource = publisherList;

            this.cboxPubliserId.DisplayMember = "PublisherName"; //設置下拉框顯示名稱

            this.cboxPubliserId.ValueMember = "PublisherId";  //設置下拉框提交值成員

            //this.cboxPubliserId.SelectedIndex = -1;

 

 

        }

       

       

        /// <summary>

        /// 提交修改並在主界面中展現修改好的內容

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        private void btnCommit_Click(object sender, EventArgs e)

        {

            //提交修改 與添加的方法相似

            // [1] 檢查數據、驗證數據

            if (txtBarCode.Text.Trim() == " " || txtBarCode.TextLength == 0)

            {

                MessageBox.Show("圖書編碼不能爲空!", "提示");

                txtBarCode.Focus();

                return;

            }

            // [2] 封裝對象(將修改的內容裝換爲對象)

            Book book = new Book()

            {

                BarCode = this.txtBarCode.Text,

                BookName = this.txtBookName.Text,

                Price = Convert.ToDouble(this.txtPrice.Text),

                PublisherId = Convert.ToInt32(cboxPubliserId.SelectedValue),

                PublishDate = Convert.ToDateTime(this.dtpPublishDate.Text)

            };

            // [3] 將對象保存到數據源(多數狀況是數據庫、也能夠是其餘數據源)

 

            // [4] 保存修改的對象

            this.Tag = book;

            this.DialogResult = DialogResult.OK;

            this.Close();

 

        }

}

 

3、 刪除圖書對象

 

private void btnDelete_Click(object sender, EventArgs e)

        {

            //[1]驗證刪除 提示是否確認刪除;若是當前沒有任何數據,則不執行操做

            if (this.dgvBookList.RowCount == 0 || this.dgvBookList.CurrentRow == null)

            {

                MessageBox.Show("沒有選中刪除對象", "提示");

                return;

            }

           // 刪除確認

           

                DialogResult result = MessageBox.Show("確認刪除?", "刪除提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);

                if (result == DialogResult.Cancel)

                {

                    return;

                }

            //[2]獲取當前圖書對象的惟一標識圖書編碼而後找到該對象

            String barCode = this.dgvBookList.CurrentRow.Cells["BarCode"].Value.ToString();

            Book delBook = (from b in bookList where b.BarCode.ToString().Equals(barCode) select b).First<Book>();

            //[3]刪除該對象用remove

            this.bookList.Remove(delBook);

            //[4]同步更新顯示 bookList添加到dgv數據源,先清空數據源

            this.dgvBookList.DataSource = null;

            this.dgvBookList.DataSource = bookList;

        }

相關文章
相關標籤/搜索