Windows Form -----内容(9)

 

一、实现查询功能:
(一)做数据访问类:
    使用CodeSmith生成
    配置链接字符串
    扩展相应的查询方法。
(二)造界面
添加、修改、删除
下拉列表,文本框,查询
ListView
(三)写代码:
1.查询所有的,显示在ListView中。
a.取数据——调用后端不同的方法,返回List<TeacherData>
b.显示出来——把List<TeacherData>加载到ListView中去
    a)做列表项——ListViewItem
        (a)做主项  ListViewItem item = new ListViewItem();  item.Text=...;item.Tag=...;
        (b)加子项  item.SubItems.Add(子项内容);
    b)加到列表上——ListView1.Items.Add()

2.根据下拉列表选中的项进行查询。
a.取数据——调用后端不同的方法,返回List<TeacherData>
b.显示出来。——把List<TeacherData>加载到ListView中去


二、实现添加功能:
1.做添加窗体:
做界面——略
写代码:
a.填充“部门”下拉列表
//取部门所有数据
//绑定到部门下拉列表中去。

b.编写“添加”按钮的代码。
//取界面上的数据,放到TeacherData对象中去
//把造出来的TeacherData对象扔到数据库中去
//返回DialogResult

2.在主界面中调用显示添加窗体:
以对话框形式显示出添加窗体。接收返回来的DialogResult
如果返回的是OK,就调用ShowTeacher()方法重新查遍数据库,显示在列表中刷新


三、实现修改功能:
1.做修改窗体
做界面---略
写代码
a.填充部门下拉列表。
//取数据;
//填进去
b.初始化老师数据。接收要修改主键,查询要修改的记录,放在修改窗体中。
//获取主键
        定义个成员变量,用来保存传来的主键值。        private string _Key = "";
        定义个构造函数,接收传来的值,保存在上面的成员变量中        public XXX(string code){this._Key = code;}
//查询相应的记录
        就用XXXXDA类的方法,把主键值传进去获得查询结果。
                    XXXXDA da = new XXXXDA();
                    XXXXData data = da.Select(_Key);

//把查出来的结果显示在窗体上。
        把上面的查询结果放在窗体的控件中。
        xxxx.Text = data.XXXX;
        ......

c.编写“更新”按钮中的代码。
//获取界面上的数据
XXXXData data = new XXXXData();
data.xXX = xxxx;
.....
//送回数据库
XXXXXDA da = new XXXXDA();
da.Update(data);

//返回DialogResult
this.DialogResult = ....OK;

2.在主界面中调用显示修改窗体。
//获取要修改的项的主键值。
//显示修改窗体对话框,并把主键值传过去。
//根据修改窗体返回的DialogResult,决定是否刷新显示。

 

小知识点:(1)substring(),lastindexOf();图片中用到了opendialogfile对话框控件;转义字符。

 private void button3_Click(object sender, EventArgs e)
        {
            DialogResult result = OPEN.ShowDialog();//open 这个窗体show出来
            if (result==System.Windows.Forms.DialogResult.OK)
            {
                string path = OPEN.FileName;
                int start = path.LastIndexOf("\\")+1;//转义字符\\反斜杠
                //文件夹完整路径:C:\QQ\QQ.EXE,显示出来的是下标,从0开始数
                lblPic.Text = "car/" + path.Substring(start);
                //忘记的内容:
                //String.SubString(int   index,int   length)  
                //index:开始位置,从0开始    
                //length:你要取的子字符串的长度   
                //String s="abcdefgh"; 字符串长度为 8  下标范围 0-7
                //s.SubString(2,7);   由下标为2的字母开始截取 下标为2的字母为C 即从C开始获取后面7个字母包括C,可以看到C后面的字母只有5个,
                //而你要取7个 所以造成数组越界。 如果想去从一个位置到结尾的字符串 可以省略 subString()方法的第二个参数,即subString(2),
                //即从下标位置为2的字符开始一直到结尾。
            }
        }
(2)

    lblPic.Text = data.Pic;
            //定位系列和厂商的下拉列表
            string brandcode = data.Brand;
            string prodcode = data.BrandData.ProdCode;

           //根据厂商代号定位厂商下拉列表
            foreach (ProductorData prod in cmbProd.Items)
            {
                if (prod.ProdCode==prodcode)
                {
                    cmbProd.SelectedItem = prod;
                    break;
                }
            }
            //根据系列代号定位系列下拉列表
            foreach (BrandData brand in cmbBrand.Items)
            {
                if (brand.BrandCode==brandcode)
                {
                    cmbBrand.SelectedItem = brand;
                    break;
                }

posted @ 2015-05-20 10:41  指尖的人生  阅读(202)  评论(0编辑  收藏  举报