国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - C# - C# ComboBox的聯(lián)動(dòng)操作(三層架構(gòu))

C# ComboBox的聯(lián)動(dòng)操作(三層架構(gòu))

2021-11-21 15:39天盡頭的那片海 C#

這篇文章主要介紹了C# ComboBox的聯(lián)動(dòng)操作(三層架構(gòu)),根據(jù)下拉框的變化使得下拉框綁定對應(yīng)值,感興趣的小伙伴們可以參考一下

項(xiàng)目需求:根據(jù)年級下拉框的變化使得科目下拉框綁定次年級下對應(yīng)有的值

C# ComboBox的聯(lián)動(dòng)操作(三層架構(gòu))

我們用三層架構(gòu)的模式來實(shí)現(xiàn)

C# ComboBox的聯(lián)動(dòng)操作(三層架構(gòu))

1.我們想和數(shù)據(jù)庫交互,我們首先得來先解決dal數(shù)據(jù)庫交互層

C# ComboBox的聯(lián)動(dòng)操作(三層架構(gòu))

01.獲得年級下拉框的數(shù)據(jù)

在gradedal類中

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
using system.data.sqlclient;
using system.data;
using myschool.model;
using system.configuration;
namespace myschool.dal
{
 //數(shù)據(jù)訪問層
 public class gradedal
 {
  public static string constr = configurationmanager.connectionstrings["constr"].connectionstring;
  #region 獲得年級表
   public datatable selectgrade(string gradetype)
  {
   //和數(shù)據(jù)庫交互
   string str = "data source=.;initial catalog=myschool;uid=sa";
   sqlconnection con = new sqlconnection(str);
   string sql = "";
   if (gradetype=="")
   {
    sql = "select * from grade";
   }
   else
   {
    sql = "select * from student where gradeid in (select gradeid from grade where gradename='" + gradetype + "')";
   }
   
   sqldataadapter da = new sqldataadapter(sql, con);
   dataset ds = new dataset();
   //捕獲異常
   try
   {
    da.fill(ds, "stuinfo");
   }
   catch (exception ex)
   {
 
    throw new exception(ex.message);
   }
   //返回一張表的數(shù)據(jù)
   return ds.tables["stuinfo"];
  }
  #endregion
 
  #region 獲取年級數(shù)據(jù),為在下拉框中顯示
   //定義一個(gè)集合,儲(chǔ)存年級信息
   list<grade> list = new list<grade>();
   #region 方法一: 以返回表的方式
   public datatable loadcombox()
   {
    string sql = "select * from grade";
    datatable dt = sqlhelper.executedatatable(sql);
    return dt;
   }
   #endregion
 
   #region 方法二:以返回集合的方式
 
   public list<grade> loadcombox2()
   {
    string sql = "select * from grade";
    datatable dt = sqlhelper.executedatatable(sql);
    //方法一:
    foreach (datarow row in dt.rows)
    {
     //每一個(gè)row代表表中的一行,所以一行對應(yīng)一個(gè)年級對象
     grade grade = new grade();
     grade.gradeid = convert.toint32(row["gradeid"]);
     grade.gradename = row["gradename"].tostring();
     list.add(grade);
    }
    //方法二:(使用mytool類)
 
    //mytool tool=new mytool();
    //list = tool.datatabletolist<grade>(dt);
    return list;
   }
  #endregion
 
   #region 方法三:要求使用using語句
   public list<grade> loadcombox3()
   {
    //using的作用可以釋放資源,利于資源的回收(可以省略關(guān)閉連接)
    using (sqlconnection con=new sqlconnection(constr))
    {
     try
     {
      string sql = "select * from grade";
      sqlcommand cmd = new sqlcommand(sql,con);
      con.open();
      sqldatareader dr = cmd.executereader();
      while (dr.read())
      {
       grade gr = new grade();
       gr.gradeid = convert.toint32(dr["gradeid"]);
       gr.gradename=dr["gradename"].tostring();
       list.add(gr);
      }
    
     }
     catch (exception ex)
     {
 
      throw new exception(ex.message);
     }
    }
    return list;
   }
  #endregion
 
   #endregion
 
  
  
 
  
 }
}

02.在業(yè)務(wù)邏輯層

C# ComboBox的聯(lián)動(dòng)操作(三層架構(gòu))

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
using myschool.dal;
using system.data;
using myschool.model;
namespace myschool.bll
{
 public class gradebll
 {
  gradedal gradedal = new gradedal();
  #region 獲取年級數(shù)據(jù),為在下拉框中顯示
 
  public datatable selectgrade(string gradetype)
  {
   return gradedal.selectgrade(gradetype);
  }
 
  public datatable loadcombox()
  {
   return gradedal.loadcombox();
  }
  
 
  public list<grade> loadcombox2()
  {
   return gradedal.loadcombox2();
  }
 
 
  #endregion
 
  public list<grade> loadcombox3()
  {
   return gradedal.loadcombox3();
  }
 
  
 }
}

03.在窗體ui層

在load事件中加載年級下拉框

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
private void frmselectresult_load(object sender, eventargs e)
 {
  #region 加載年級下拉框
  try
  {
   list<grade> list = gradedal.loadcombox3();
   list.insert(0, new grade() { gradeid=-1,gradename="--全部--" });
   cbograde.valuemember = "gradeid";
   cbograde.displaymember = "gradename";
   cbograde.datasource = list;
  }
  catch (exception ex)
  {
 
   messagebox.show(ex.message);
  }
  
  
  #endregion
 
  #region 加載科目下拉框
  //try
  //{
  // list2 = subjectdal.loadcomboxsub();
  // list2.insert(0, new subject() { subjectid = -1, subjectname = "--全部--" });
  // cbosubject.valuemember = "subjectid";
  // cbosubject.displaymember = "subjectname";
  // cbosubject.datasource = list2;
  //}
  //catch (exception ex)
  //{
 
  // messagebox.show(ex.message);
  //}
  
  #endregion
 }

其中在使用

獲得年級下拉框隱藏值得方法(2)
int num = convert.toint32(cbograde.selectedvalue);

加載年級下拉框時(shí):會(huì)出現(xiàn)的錯(cuò)誤的寫法

把cbograde.datasource = list;寫在
 cbograde.valuemember = "gradeid";
 cbograde.displaymember = "gradename";
上面
即:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#region 加載年級下拉框
  try
  {
   list<grade> list = gradedal.loadcombox3();
   list.insert(0, new grade() { gradeid=-1,gradename="--全部--" });
   cbograde.datasource = list;
   cbograde.valuemember = "gradeid";
   cbograde.displaymember = "gradename";
   
   
  }
  catch (exception ex)
  {
 
   messagebox.show(ex.message);
  }
  
  
  #endregion

這是就會(huì)出現(xiàn)下面錯(cuò)誤:

C# ComboBox的聯(lián)動(dòng)操作(三層架構(gòu))

在年級的selectedindexchanged事件中

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
try
  {
 
   //根據(jù)年級取得科目信息并綁定
   #region 獲得年級下拉框隱藏值得方法(1)
   grade sub = (grade)cbograde.selecteditem;
   int num =sub.gradeid;
   #endregion
 
   #region 獲得年級下拉框隱藏值得方法(2)
   // int num = convert.toint32(cbograde.selectedvalue.tostring());
   #endregion
   
   list<subject> list = subjectdal.loadcomboxsub2(num);
   
   cbosubject.valuemember = "subjectid";
   cbosubject.displaymember = "subjectname";
   cbosubject.datasource = list;
   
 
   
  }
  catch (exception)
  {
 
   messagebox.show("出錯(cuò)");
  }

以上就是本文的全部內(nèi)容,希望對大家學(xué)習(xí)c#程序設(shè)計(jì)有所幫助。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 免费啪啪网站 | 欧美激情亚洲 | 成人免费一区二区三区视频软件 | 永久免费av片在线观看全网站 | a成人| 97久久精品 | 特级毛片在线 | a在线视频 | 亚洲成人一区二区在线观看 | 亚洲欧美激情精品一区二区 | 欧美日韩久久精品 | 国产一级片 | 2015成人永久免费视频 | 久草电影网| 欧美精品一区二区三区四区 | 日韩在线免费观看视频 | 日韩在线成人 | 日本在线不卡视频 | 午夜在线小视频 | 亚洲一区二区在线视频 | 精品综合 | 国产视频黄在线观看 | 日本久久网 | 国产精品美女久久久久aⅴ国产馆 | 久久精品亚洲精品国产欧美kt∨ | 日韩精品一区二区三区中文字幕 | 亚洲 激情 在线 | 最近2018年手机中文字幕版 | 久久国产精品亚洲 | 欧美日本韩国一区二区 | 亚洲一区二区在线播放 | 欧美激情一区二区 | 国产一区二区三区在线 | 成人精品一区二区三区视频播放 | 精品国产黄a∨片高清在线 欧美一级免费 | 韩国精品一区二区 | 午夜爽爽爽 | 91午夜在线 | 亚洲国产精品福利 | 国产一区二区日韩 | 精品国产乱码久久久久久1区2区 |