任務(wù)2.9 商品信息查詢修改界面功能設(shè)計(jì) (曾浩 2016270386)

1.效果圖

圖1.商品信息查詢界面

2.主要功能及數(shù)據(jù)表結(jié)構(gòu)

2.1-主要功能

后臺管理人員查詢系統(tǒng)已有商品信息胸懈,然后對某條信息進(jìn)行相應(yīng)操作(如:修改或者刪除)载碌。查詢信息也是信息管理系統(tǒng)的一項(xiàng)基礎(chǔ)功能搁痛。

2.2-所需的后臺數(shù)據(jù)庫表結(jié)構(gòu)

表名:GOODS

列名 數(shù)據(jù)類型 允許null值
ID varchar(50) ×
NAME varchar(50)
SUPPLIER int
SPEC varchar(20)
REMARK varchar(100)
圖2.GOODS表

表名:SUPPLIER

列名 數(shù)據(jù)類型 允許null值
CODE int ×
NAME varchar(100)
LOCATION varchar(100)
CONTRACTS varchar(50)
PHONE varchar(15)
圖3.SUPPLIER表

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

圖4.ADO.NET刪除
具體步驟:
  1. 導(dǎo)入命名空間;
  2. 定義數(shù)據(jù)庫連接字符串系任,運(yùn)用Connection對象建立與數(shù)據(jù)庫連接哲嘲;
  3. 打開連接峡懈;
  4. 利用Command對象的ExecuteNoQuery()方法執(zhí)行Delete語句说墨;
  5. 通過ExecuteNoQuery()方法返回值判斷是否修改成功骏全,并在界面上提示;
  6. 關(guān)閉連接尼斧。

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

4.1-添加comboBox控件

圖5.無供應(yīng)商
圖6.有供應(yīng)商

4.2-綁定ComboBox姜贡,初始化下拉列表

1.連接數(shù)據(jù)庫;

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

2.構(gòu)造查詢命令棺棵;

String sqlStr = "select * from SUPPLIER order by CODE";
SqlCommand cmd = new SqlCommand(sqlStr, sqlConn);

3.將該查詢過程綁定到DataAdapter楼咳;

SqlDataAdapter adp = new SqlDataAdapter();
adp.SelectCommand = cmd;

4.將DataSet和DataAdapter綁定;

DataSet ds = new DataSet();

5.自定義一個(gè)表(MySupplier)來標(biāo)識數(shù)據(jù)庫的SUPPLIER表烛恤;

adp.Fill(ds, "MySupplier");

6.指定ComboBox的數(shù)據(jù)源為DataSet的MySupplier表

this.cbb_Supplier.DataSource = ds.Tables["MySupplier"];
this.cbb_Supplier.DisplayMember = "NAME"; // ComboBox下拉列表顯示的內(nèi)容母怜,這里顯示供應(yīng)商名稱
this.cbb_Supplier.ValueMember = "CODE";   // ComboBox另外還攜帶一個(gè)隱藏的值叫ValueMember,指定為供應(yīng)商代碼
this.cbb_Supplier.SelectedIndex = 0;

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

  1. 構(gòu)造命令缚柏;
String sqlStr = "select * from GOODS where 1=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);
  1. 將該查詢過程綁定到DataAdapter骄呼;
SqlDataAdapter adp = new SqlDataAdapter();
adp.SelectCommand = cmd;
  1. 將DataSet和DataAdapter綁定所意;
DataSet ds = new DataSet();
  1. 自定義一個(gè)表(MyGoods)來標(biāo)識數(shù)據(jù)庫的GOODS表;
adp.Fill(ds, "MyGoods");
  1. 指定DataGridView的數(shù)據(jù)源為DataSet的MyGoods表伤为。
this.dgv_Goods.DataSource = ds.Tables["MyGoods"];

6.重要代碼片段

6.1-查詢商品信息

編寫商品信息查詢列表代碼:
1) 代碼編寫位置
“查詢”按鈕點(diǎn)擊后;
2) 代碼編寫
利用ADO .NET技術(shù)實(shí)現(xiàn)數(shù)據(jù)類別查詢粱锐。

具體步驟:
  1. 導(dǎo)入命名空間;
  2. 定義數(shù)據(jù)庫連接字符串疙挺,運(yùn)用Connection對象建立與數(shù)據(jù)庫連接;
  3. 打開連接怜浅;
  4. 利用DataAdapter對象铐然,建立與數(shù)據(jù)庫的連接橋;
  5. 通過DataAdapter橋恶座,將查詢結(jié)果存儲到DataSet對象中搀暑;
  6. 利用DataGridView控件將DataSet中的查詢結(jié)果顯示出來
  7. 關(guān)閉連接。
                // 連接數(shù)據(jù)庫
                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ù)據(jù)庫的GOODS表
                adp.Fill(ds, "MyGoods");

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

6.2-修改商品信息

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

具體步驟:
  1. 導(dǎo)入命名空間;
  2. 定義數(shù)據(jù)庫連接字符串桂敛,運(yùn)用Connection對象建立與數(shù)據(jù)庫連接功炮;
  3. 打開連接;
  4. 利用Command對象的ExecuteNoQuery()方法執(zhí)行Update語句术唬;
  5. 通過ExecuteNoQuery()方法返回值判斷是否修改成功薪伏,并在界面上提示;
  6. 關(guān)閉連接粗仓。
                // 構(gòu)造命令
                String sqlStr = "update GOODS set NAME=@name, PRICE=@price, SPEC=@spec, REMARK=@remark, SUPPLIER=@supplier 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));
                cmd.Parameters.Add(new SqlParameter("@supplier", supplier));

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

                // 根據(jù)返回值判斷是否修改成功
                if (res != 0)
                {
                    MessageBox.Show("商品信息修改成功");
                    this.Close();
                }
                else
                {
                    MessageBox.Show("商品信息修改失敗");
                }

6.3-刪除商品信息

點(diǎn)擊刪除后嫁怀,提示確認(rèn),確認(rèn)后刪除
運(yùn)用ADO.NET實(shí)現(xiàn)數(shù)據(jù)庫刪除借浊。

具體步驟:
  1. 導(dǎo)入命名空間;
  2. 定義數(shù)據(jù)庫連接字符串塘淑,運(yùn)用Connection對象建立與數(shù)據(jù)庫連接;
  3. 打開連接蚂斤;
  4. 利用Command對象的ExecuteNoQuery()方法執(zhí)行Delete語句存捺;
  5. 通過ExecuteNoQuery()方法返回值判斷是否修改成功,并在界面上提示曙蒸;
  6. 關(guān)閉連接召噩。
if (MessageBox.Show("確認(rèn)刪除?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                {
                    // 獲取所要刪除關(guān)聯(lián)對象的主鍵
                    string objectId = 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ù)庫
                        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", objectId));

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

                        // 根據(jù)返回值判斷是否修改成功
                        if (res != 0)
                        {
                            MessageBox.Show("刪除成功");
                        }
                        else
                        {
                            MessageBox.Show("刪除失敗");
                        }
                    }
                    catch (Exception exp)
                    {
                        MessageBox.Show("訪問數(shù)據(jù)庫錯(cuò)誤:" + exp.Message);
                    }
                    finally
                    {
                        sqlConn.Close();
                    }
                }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市凹嘲,隨后出現(xiàn)的幾起案子师倔,更是在濱河造成了極大的恐慌,老刑警劉巖周蹭,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件趋艘,死亡現(xiàn)場離奇詭異,居然都是意外死亡凶朗,警方通過查閱死者的電腦和手機(jī)瓷胧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來棚愤,“玉大人搓萧,你說我怎么就攤上這事⊥鹌瑁” “怎么了瘸洛?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長次和。 經(jīng)常有香客問我反肋,道長,這世上最難降的妖魔是什么踏施? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任石蔗,我火速辦了婚禮罕邀,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘养距。我一直安慰自己诉探,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布铃在。 她就那樣靜靜地躺著阵具,像睡著了一般。 火紅的嫁衣襯著肌膚如雪定铜。 梳的紋絲不亂的頭發(fā)上阳液,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天,我揣著相機(jī)與錄音揣炕,去河邊找鬼帘皿。 笑死,一個(gè)胖子當(dāng)著我的面吹牛畸陡,可吹牛的內(nèi)容都是我干的鹰溜。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼丁恭,長吁一口氣:“原來是場噩夢啊……” “哼曹动!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起牲览,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤墓陈,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后第献,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贡必,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年庸毫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了仔拟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,100評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡飒赃,死狀恐怖利花,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情载佳,我是刑警寧澤晋被,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站刚盈,受9級特大地震影響羡洛,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一欲侮、第九天 我趴在偏房一處隱蔽的房頂上張望崭闲。 院中可真熱鬧,春花似錦威蕉、人聲如沸刁俭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽牍戚。三九已至,卻和暖如春虑粥,著一層夾襖步出監(jiān)牢的瞬間如孝,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工娩贷, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留第晰,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓彬祖,卻偏偏與公主長得像茁瘦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子储笑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評論 2 345

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