首页 新闻 会员 周边

WPF 关于实现电影买票选择场次的这个功能,我自己暂时实现了一个, 不知有没有更好的方法?

0
悬赏园豆:50 [已解决问题] 解决于 2016-07-12 09:24

我的方法:用到了ListBox和ListView这俩个控件,ListBox用来展示电影图片,ListView用来展示信息(这里包含放映时间,语言等),当在ListBox中选中图片,ListView就展示对应的信息,

效果图如下:

数据库的结构:

 

这些信息是从数据库中读取的。其中,用来读取信息的代码如下:因为是利用ListBox的SelectedIndex的属性,所以,里面有个switch的语句,用来将选择的图片和数据库中读取的电影名称来对应起来,

问题就是这里,不知道有没有更好的方法来实现选择的图片和数据库的数据对应起来?或者是其他的方法实现选中图片展示出多条信息的效果?

(我的担心是如果图片变多这switch的语句,岂不是很长)

 1 class MovieInfo
 2     {
 3         ConnectDatabase connetDB = new ConnectDatabase();
 4         ObservableCollection<MovieInfo> movieInfo = new ObservableCollection<MovieInfo>();
 5         public string showTime { get; set; }
 6         public string language { get; set; }
 7         public string showRoom { get; set; }
 8         public string moviePrice { get; set; }
 9 
10 
11         public ObservableCollection<MovieInfo> LoadMovieInfomation(int nameIndex)
12         {
13             string movieName = "";
14             switch (nameIndex)   //这段switch是用来对应ListBox的选择的图片和电影名称
15             {
16                 case -1:
17                     movieName = "港囧";
18                     break;
19                 case 0:
20                     movieName = "港囧";
21                     break;
22                 case 1:
23                     movieName = "第三种爱情";
24                     break;
25                 case 2:
26                     movieName = "解救吾先生";
27                     break;
28                 case 3:
29                     movieName = "烈日雄心";
30                     break;
31                 case 4:
32                     movieName = "博物馆奇妙夜3";
33                     break;
34                 case 5:
35                     movieName = "坚不可摧";
36                     break;
37                 case 6:
38                     movieName = "末日浩劫";
39                     break;
40                 case 7:
41                     movieName = "独立日2";
42                     break;
43                 case 8:
44                     movieName = "忍者神龟2";
45                     break;
46                 case 9:
47                     movieName = "正义黎明";
48                     break;
49             }
50             GetData(movieName);
51             return movieInfo;
52         }
53 
54         private void GetData(string name)
55         {   
56 
57             string sql = "SELECT * FROM MovieTimeInfo WHERE movieName = '"+name+"'";
58             connetDB.Connection();
59             connetDB.SelectData(sql);
60             int count = connetDB.ds.Tables[0].Rows.Count;
61             if (count != 0)
62             {
63                 for (int i = 0; i < count; i++)
64                 {
65                     movieInfo.Add(new MovieInfo()
66                     {
67                         showTime = connetDB.ds.Tables[0].Rows[i]["showTime"].ToString(),
68                         language = connetDB.ds.Tables[0].Rows[i]["language"].ToString(),
69                         showRoom = connetDB.ds.Tables[0].Rows[i]["showRoom"].ToString(),
70                         moviePrice = connetDB.ds.Tables[0].Rows[i]["moviePrice"].ToString(),
71                     });
72                 }
73             }
74             else
75             {
76                 
77             }
78         }
79 
80     }
WPF
UCI的主页 UCI | 初学一级 | 园豆:128
提问于:2016-07-09 16:30
< >
分享
最佳答案
0

你的图片是存在哪里的?这个哪里需要用switch,应该是在数据库里存放图片与影片的关系啊

收获园豆:50
新的开始 | 小虾三级 |园豆:679 | 2016-07-09 16:54

图片我是放在了一个文件夹中,到时通过ListBox加载的,要是按您所说的,将图片存到数据库里去,那是每条记录都要存一张图片吗?例如,那个港囧的我就要存三张一样的图片嘛?

UCI | 园豆:128 (初学一级) | 2016-07-09 17:01

刚接触数据库,还不是很了解,是不是要弄两张表,一张放图片,一个放信息,在弄成一对多的形式,先谢谢您了?我去试一试 

UCI | 园豆:128 (初学一级) | 2016-07-09 17:20

@UCI: 最终解决方法,还是要好好学习下数据库的设计和关系

UCI | 园豆:128 (初学一级) | 2016-07-12 09:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册