2.8任務(wù)報(bào)告

商品信息查詢修改界面功能設(shè)計(jì)

1.1 任務(wù)內(nèi)容

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

1.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控件的使用方法铁材。

2.1 效果圖

223.gif

上圖實(shí)現(xiàn)了對(duì)數(shù)據(jù)庫(kù)的修改與刪除操作。

2.2 支持這些功能的后臺(tái)數(shù)據(jù)庫(kù)表結(jié)構(gòu)

[ID] [varchar](50) NOT NULL,
[NAME] [varchar](20) NULL,
[PRICE] [float] NULL,
[SPEC] [varchar](20) NULL,
[REMARK] [varchar](100) NULL,

2.3 ADO.NET刪除數(shù)據(jù)庫(kù)的流程

(1) 導(dǎo)入命名空間;
(2) 定義數(shù)據(jù)庫(kù)連接字符串奕锌,創(chuàng)建Connection對(duì)象著觉;
(3)打開連接;

String connStr = ConfigurationManager.ConnectionStrings["SuperMarketSales"].ConnectionString;
SqlConnection sqlConn = new SqlConnection(connStr);

(4)連接數(shù)據(jù)庫(kù)惊暴;

 sqlConn.Open();

(5)刪除語句構(gòu)造命令饼丘;

String sqlStr = "delete from GOODS where ID=@id";
SqlCommand cmd = new SqlCommand(sqlStr, sqlConn);

(6)SQL字符串參數(shù)賦值

cmd.Parameters.Add(new SqlParameter("@id", goodsId));

(7)將命令發(fā)送給數(shù)據(jù)庫(kù)

int res = cmd.ExecuteNonQuery();

(8)根據(jù)返回值判斷是否修改成功

 if (res != 0)
{
 MessageBox.Show("刪除成功");
}
 else
 {
  MessageBox.Show("刪除失敗");
 }

(9)關(guān)閉連接;

finally
{
    sqlConn.Close();
}

2.4 畫面迭代流程

223.gif

2.5 DataGridView數(shù)據(jù)綁定流程

14023516-01197db63ee082e8.gif

2.6主要代碼

{
            String id = this.tb_Id.Text.Trim();
            String name = this.tb_Name.Text.Trim();
            float price = float.Parse(this.tb_Price.Text.Trim());
            String spec = this.tb_Spec.Text.Trim();
            String remark = this.tb_Remark.Text.Trim();

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

                // 構(gòu)造命令
                String sqlStr = "update GOODS set NAME=@name, PRICE=@price, SPEC=@spec, REMARK=@remark where ID=@id";
                SqlCommand cmd = new SqlCommand(sqlStr, sqlConn);

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

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

                // 根據(jù)返回值判斷是否修改成功
                if (res != 0)
                {
                    MessageBox.Show("商品信息修改成功");
                    this.Close();
                }
                else
                {
                    MessageBox.Show("商品信息修改失敗");
                }
            }
            catch (Exception exp)
            {
                MessageBox.Show("訪問數(shù)據(jù)庫(kù)錯(cuò)誤:" + exp.Message);
            }
            finally
            {
                sqlConn.Close();
            }
        }
//數(shù)據(jù)的查詢
      private void bt_Query_Click(object sender, EventArgs e)
        {
            // 連接字符串肄鸽,注意與實(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"];
            }
            catch (Exception exp)
            {
                MessageBox.Show("訪問數(shù)據(jù)庫(kù)錯(cuò)誤:" + exp.Message);
            }
            finally
            {
                sqlConn.Close();
            }
        }

        // 數(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();
                    }
                }
            }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市村砂,隨后出現(xiàn)的幾起案子烂斋,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件汛骂,死亡現(xiàn)場(chǎng)離奇詭異罕模,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)帘瞭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門淑掌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蝶念,你說我怎么就攤上這事抛腕。” “怎么了媒殉?”我有些...
    開封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵担敌,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我廷蓉,道長(zhǎng)全封,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任桃犬,我火速辦了婚禮刹悴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘攒暇。我一直安慰自己土匀,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開白布形用。 她就那樣靜靜地躺著就轧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪尾序。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天躯砰,我揣著相機(jī)與錄音每币,去河邊找鬼。 笑死琢歇,一個(gè)胖子當(dāng)著我的面吹牛兰怠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播李茫,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼揭保,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了魄宏?” 一聲冷哼從身側(cè)響起秸侣,我...
    開封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后味榛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體椭坚,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年搏色,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了善茎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡频轿,死狀恐怖垂涯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情航邢,我是刑警寧澤耕赘,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站翠忠,受9級(jí)特大地震影響鞠苟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜秽之,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一当娱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧考榨,春花似錦跨细、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至掀鹅,卻和暖如春散休,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背乐尊。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工戚丸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人扔嵌。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓限府,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親痢缎。 傳聞我的和親對(duì)象是個(gè)殘疾皇子胁勺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容