2018-12-03

任務(wù)2.8 商品信息查詢界面功能設(shè)計(jì)

制作人:第二組 徐黎明

1.任務(wù)介紹

基于智慧社區(qū)開發(fā)的智慧商超系統(tǒng)

在智慧社區(qū)商超管理系統(tǒng)中,后臺(tái)管理人員查詢系統(tǒng)已有商品信息,然后對(duì)某條信息進(jìn)行相應(yīng)操作(如:修改或者刪除)。查詢信息也是信息管理系統(tǒng)的一項(xiàng)基礎(chǔ)功能。

2.任務(wù)目標(biāo)

1.進(jìn)一步認(rèn)識(shí)ADO .NET;
2.了解C#實(shí)現(xiàn)數(shù)據(jù)庫(kù)數(shù)據(jù)查詢、修改、刪除、的過程;
3.了解C#數(shù)據(jù)庫(kù)編程中DataGridView控件的使用方法。

3.任務(wù)實(shí)施

3.1.1搭建商超管理系統(tǒng)數(shù)據(jù)庫(kù)SuperMarketSales

在數(shù)據(jù)庫(kù)服務(wù)器上,新建SuperMarketSales數(shù)據(jù)庫(kù),并導(dǎo)入SuperMarketSales.sql腳本。

3.1.2設(shè)計(jì)并制作商品信息查詢界面

(1)設(shè)計(jì)并制作商品信息查詢界面;
(2)規(guī)劃商品信息查詢界面在整個(gè)系統(tǒng)中進(jìn)入的路徑。

3.1.3實(shí)現(xiàn)步驟

  1. 導(dǎo)入命名空間;
  2. 定義數(shù)據(jù)庫(kù)連接字符串,創(chuàng)建Connection對(duì)象;
  3. 打開連接;
  4. 利用DataAdapter對(duì)象,建立與數(shù)據(jù)庫(kù)的連接橋;
  5. 通過DataAdapter橋,將查詢結(jié)果存儲(chǔ)到DataSet對(duì)象中;
  6. DataGridView控件綁定DataSet,將查詢結(jié)果顯示出來;
  7. 關(guān)閉連接。
圖一 ADO .NET訪問SQL Server數(shù)據(jù)庫(kù).PNG

3.1.4查詢代碼

// 連接字符串,注意與實(shí)際環(huán)境保持一致
String connStr = ConfigurationManager.ConnectionStrings["SuperMarketSales"].ConnectionString;
SqlConnection sqlConn = new SqlConnection(connStr);
try
{
    // 連接數(shù)據(jù)庫(kù)
    sqlConn.Open();
// 構(gòu)造命令
String sqlStr = "select * from GOODS where 1=1 ";

// 添加查詢條件
if (!this.tb_Id.Text.Trim().Equals("")){
    sqlStr += " and ID='" + this.tb_Id.Text.Trim() + "'";
}

if (!this.tb_Name.Text.Trim().Equals("")){
    sqlStr += " and NAME like '%" + this.tb_Name.Text.Trim() + "%'";
}

SqlCommand cmd = new SqlCommand(sqlStr, sqlConn);

// 將該查詢過程綁定到DataAdapter
SqlDataAdapter adp = new SqlDataAdapter();
adp.SelectCommand = cmd;

// 將DataSet和DataAdapter綁定
DataSet ds = new DataSet();
// 自定義一個(gè)表(MyGoods)來標(biāo)識(shí)數(shù)據(jù)庫(kù)的GOODS表
adp.Fill(ds, "MyGoods");

// 指定DataGridView的數(shù)據(jù)源為DataSet的MyGoods表
this.dgv_Goods.DataSource = ds.Tables["MyGoods"];

    // DataGridView數(shù)據(jù)綁定
}
catch (Exception exp)
{
    MessageBox.Show("訪問數(shù)據(jù)庫(kù)錯(cuò)誤:" + exp.Message);
}
finally
{
    sqlConn.Close();
}

代碼實(shí)現(xiàn)了商品的查詢、數(shù)據(jù)庫(kù)連接 ;
首先構(gòu)造查詢語(yǔ)句;添加相應(yīng)的條件。
然后將該查詢過程綁定到DataAdapter 即將DataSet和DataAdapter綁定;
最后自定義一個(gè)表(MyGoods)來標(biāo)識(shí)數(shù)據(jù)庫(kù)的GOODS表 、指定DataGridView的數(shù)據(jù)源為DataSet的MyGoods表;

3.1.5查詢效果演示

查詢演示.gif
3. 編碼實(shí)現(xiàn)商品信息修改功能

(1)窗口加載后,顯示商品信息,運(yùn)用ADO.NET實(shí)現(xiàn)數(shù)據(jù)庫(kù)查詢;
(2)點(diǎn)擊修改后,修改商品信息,運(yùn)用ADO.NET實(shí)現(xiàn)數(shù)據(jù)庫(kù)修改。
實(shí)現(xiàn)步驟

ADO.NET查詢

  1. 導(dǎo)入命名空間;
  2. 定義數(shù)據(jù)庫(kù)連接字符串,創(chuàng)建Connection對(duì)象 ;
  3. 打開連接;
  4. 利用Command對(duì)象的ExecuteReader()方法執(zhí)行Select查詢語(yǔ)句;
  5. 利用ExecuteReader()方法返回的DataReader對(duì)象讀取數(shù)據(jù),顯示到界面上;
  6. 關(guān)閉連接。

ADO.NET插入/更新/刪除

  1. 導(dǎo)入命名空間;
  2. 定義數(shù)據(jù)庫(kù)連接字符串,創(chuàng)建Connection對(duì)象;
  3. 打開連接;
  4. 利用Command對(duì)象的ExecuteNonQuery()方法執(zhí)行Insert/Update/Delete語(yǔ)句;
  5. 通過ExecuteNonQuery()方法返回值判斷是否修改成功,并在界面上提示;
  6. 關(guān)閉連接。
圖二 ADO.NET查詢.PNG

圖三 ADO.NET刪除.PNG

修改代碼

// 數(shù)據(jù)修改、刪除

        private void dgv_Goods_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            // 點(diǎn)擊修改鏈接
            if (e.RowIndex != -1 && e.ColumnIndex == 0)
            {
                // 獲取所要修改關(guān)聯(lián)對(duì)象的主鍵
                string goodsId = this.dgv_Goods["Id", e.RowIndex].Value.ToString(); 
                ModifyForm modifyForm = new ModifyForm(goodsId);
                modifyForm.Show();
            }
            else if (e.RowIndex != -1 && e.ColumnIndex == 1)
            {
                if (MessageBox.Show("確認(rèn)刪除?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                {
                    // 獲取所要?jiǎng)h除關(guān)聯(lián)對(duì)象的主鍵
                    string goodsId = this.dgv_Goods["Id", e.RowIndex].Value.ToString();

                    // 連接字符串,注意與實(shí)際環(huán)境保持一致
                    String connStr = ConfigurationManager.ConnectionStrings["SuperMarketSales"].ConnectionString;
                    SqlConnection sqlConn = new SqlConnection(connStr);
                    try
                    {
                        // 連接數(shù)據(jù)庫(kù)
                        sqlConn.Open();

                        // 構(gòu)造命令
                        String sqlStr = "delete from GOODS where ID=@id";
                        SqlCommand cmd = new SqlCommand(sqlStr, sqlConn);

                        // SQL字符串參數(shù)賦值
                        cmd.Parameters.Add(new SqlParameter("@id", goodsId));

                        // 將命令發(fā)送給數(shù)據(jù)庫(kù)
                        int res = cmd.ExecuteNonQuery();

                        // 根據(jù)返回值判斷是否修改成功
                        if (res != 0)
                        {
                            MessageBox.Show("刪除成功");
                        }
                        else
                        {
                            MessageBox.Show("刪除失敗");
                        }
                    }
                    catch (Exception exp)
                    {
                        MessageBox.Show("訪問數(shù)據(jù)庫(kù)錯(cuò)誤:" + exp.Message);
                    }
                    finally
                    {
                        sqlConn.Close();
       
        
     }
                }



代碼實(shí)現(xiàn)了商品信息的修改
首先運(yùn)用ADO.NET實(shí)現(xiàn)數(shù)據(jù)庫(kù)查詢,窗口加載后,顯示商品信息
然后運(yùn)用ADO.NET實(shí)現(xiàn)數(shù)據(jù)庫(kù)修改,就可以點(diǎn)擊修改后,修改商品信息
最后運(yùn)用ADO.NET實(shí)現(xiàn)數(shù)據(jù)庫(kù)刪除,點(diǎn)擊刪除后,提示確認(rèn),確認(rèn)后刪除

修改效果演示

修改演示.gif

4.迭代過程(無供應(yīng)商/有供應(yīng)商)

在該服務(wù)器上,創(chuàng)建供應(yīng)商表
SUPPLIER表

(1)填充ComboBox的下拉列表

(2)綁定ComboBox數(shù)據(jù)源
數(shù)據(jù)整體插入
程序?qū)崿F(xiàn)步驟:
1.連接數(shù)據(jù)庫(kù)
2.綁定數(shù)據(jù)源
3.構(gòu)造查詢命令
4.將該查詢過程綁定到DataAdapter
5.自定義一個(gè)表(MySupplier)來標(biāo)識(shí)數(shù)據(jù)庫(kù)的SUPPLIER表
6.指定ComboBox的數(shù)據(jù)源為DataSet的MySupplier表

(3)數(shù)據(jù)整體插入
程序?qū)崿F(xiàn)步驟:
1連接數(shù)據(jù)庫(kù)
2.SQL字符串參數(shù)賦值
3.將命令發(fā)送給數(shù)據(jù)庫(kù)
4.根據(jù)返回值判斷是否插入成功

5.數(shù)據(jù)庫(kù)表結(jié)構(gòu)

商品條碼 商品名稱 價(jià)格 供應(yīng)商代碼 商品規(guī)格 備注
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 商品信息查詢修改界面跟你設(shè)計(jì) 一、 界面效果圖 二.描述畫面主要功能,并列出支持這些功能的后臺(tái)數(shù)據(jù)庫(kù)表結(jié)構(gòu)主...
    66a81f97924c閱讀 244評(píng)論 1 0
  • 2.8 商品信息查詢界面功能設(shè)計(jì) 一、貼效果圖,GIF文件 二、描述畫面主要功能,支持這些功能的后臺(tái)數(shù)據(jù)庫(kù)表結(jié)...
    洋哥惹閱讀 186評(píng)論 0 0
  • 1. 2.主要功能是實(shí)現(xiàn)商品信息的修改和刪除。 3. (1)導(dǎo)入命名空間 (2)定義數(shù)據(jù)庫(kù)連接字符串,創(chuàng)建Conn...
    黑貓警長(zhǎng)giao哥閱讀 365評(píng)論 0 0
  • 2.7商品信息錄入界面功能設(shè)計(jì) 1.商品信息錄入界面效果圖 2.商品信息錄入界面主要功能 在智慧社區(qū)商超管理系統(tǒng)中...
    echoyin順麗閱讀 187評(píng)論 0 0
  • 《2.8 商品信息查詢修改界面功能設(shè)計(jì)》 制作人:李健 1. 2.主要功能:實(shí)現(xiàn)商品信息的修改和刪除 3. (1)...
    期待367閱讀 115評(píng)論 0 0

友情鏈接更多精彩內(nèi)容