有一个职员信息表-Employee
CREATE TABLE Employee(
  id int identity(1, 1),
  name nvarchar(30),
  sex  byte
)
C#项目里有个Employee类
class Employee
{
  private int id;
  private string name;
  private sex byte;  public int ID{get(return this.id;} set{this.id = value;}}
  public string Name{get(return this.name;} set{this.name = value;}}
  public byte sex{get(return this.sex;} set{this.sex = value;}}}有一个Form,在Form里有个ListView用于显示所有用户,并提供添加、删除、修改操作
作到这我就蒙了,我应该怎么设计,比如Employee要怎么初始化,应该提供哪些方法,静态还是非静态?特迷惘,前辈们指点一下,谢谢!

解决方案 »

  1.   

    Employee myEmployee;不就这样实例化码?至于怎么oo要看你自己要实现什么功能了。
    比如我要建一个人的类。那首先我要收集各种特征(定义private变量);然后实现相关方法(比如听音乐,上课)
    比如你要一个数据库操作类:首先你要定义各种变量:数据库连接对象;sqlcommand对象等等;
    实现方法:比如你要增加数据就要实现Add方法;删除数据就要实现del方法等等。
      

  2.   

    分数有点少呀
    我来说说吧,正好有过写过ListView控件的程序。为btn_Add建立一个事件(双击生成):
    //先看看在ListView中有没有相同的相,假设你的ListView控件名为:lsvEmployee
    //ListView控件有三个栏:1是ID,2是Name,3是Sex
    Employee emp=new Employee();
    bool b=false;
    foreach(ListViewItem item in lsvEmployee.Items)
    {
     if(item.subItems[0].Text==Convert.ToString(emp.ID))
     {
       b=true;break;
     } 
    }
    if(!b)//没有和ListView中的已有相重复,可以添加上去。
    {
     ListViewItem newItem=new ListViewItem();
     newItem=lsvEmployee.Items.Add((emp.ID).ToString());
     newItem.subItems[1].Text=emp.Name;
     newItem.subItems[2].Text=Convert.ToString(emp.Sex);
    }
    删除操作:
    //先判断ListView控件中有没有项目被选中,然后删除选中的项目
    if(lsvEmployee.SelectedItems.Count!=0)
    {
     lsvEmployee.Items.Remove(lsvEmployee.SelectedItems[0]);//记得最好你的ListView控件设置不可多选
                                                                   //否则需要循环删除。
    }
     
    修改操作:
    //先判断ListView控件中有没有项目被选中,然后修改选中的项目
    if(lsvEmployee.SelectedItems.Count!=0)
    {
     lsvEmployee.SelectedItems[0].subItems[0].Text=tempID;
     lsvEmployee.SelectedItems[0].subItems[1].Text=tempName;
     lsvEmployee.SelectedItems[0].subItems[2].Text=tempSex;
    }
    上述代码中没有良好的互操作性,你可以添加一些MessageBox,记得为之using System.Windows.Form;
    希望对你有点帮助。
    如果对你有用,记得给分呀。
      

  3.   

    向TListView添加数据如楼上所说,
    另外还要注意数据操作,对于添加、修改、删除操作可以使用菜单、也可以使用按钮等,但是对于具体的操作还是要通过SQL语句执行,要通过Sql的相关处理对象
      

  4.   

    至于您要如何初始化Employee类,涉及数据库连接,
    您的分真的太少了,要不我给您编一个是可以考虑的。假设您用的是SQL Serverse 2000数据库,您可以把表读入到DataSet中:
    string source="server=(local); integrated security=SSPI ; database=youDBname";;//连接字符串
    SqlConnection conn=new SqlConnection(source);
    string sql="Select * From Employee";
    SqlDataAdapter adapter=new SqlDataAdapter(sql,conn);
    DataSet ds=new DataSet("Employee");
    adapter.Fill(ds,"Employee");写道这里,建议您再建一个类:EmpArr 用来保存Employee对象集,它有两个成员:ListArray empArr ; 
    int _length;并为之写一个Add方法然后接着写:
    string strID,strName,strSex;
    EmpArr ea;
    foreach(DataRow row in ds.Table["Employee"].Rows)
    {
     strID=row[0].ToString().Trim();
     strName=row[1].ToString().Trim();
     strSex=row[2].ToString().Trim();
     ea.Add(new Employee(strID,strName,strSex));
    }这样就完成了
    好像我把它都快编完了,就差将ListView控件中修改后的项目更新数据库了。希望我写的这点东西对您有帮助。
      

  5.   

    1、如果用对象来封装Employee,那就要处理三层:类对象、数据库、界面显示。比如要添加一个Employee对象,首先我要封装一个新的Employee,对象,然后写入数据库(或者先写入数据库,成功以后再生成相应的Employee对象,因为有一个ID属性是identity的),接着再写入ListView,这实际操作起来代码太冗长了2、Employee对象要怎么封装,比如它的构照函数应该是public还是private,因为有一个ID属性在写入数据库或从数据库读取前是无法确定的,以及它应该有哪些方法才合适?Update、Del、Insert、UpdatePassword、CheckLogin...晕都晕了,还和一个个设计这些方法,比如接收什么参数,返回什么数据,还有这些方法应该是静态还是动态的,比如有一个GetUserList方法用来返回用户列表,一个GetUserByID(根据ID返回一个用户对象)这些肯定是静态方法,那Update、Del、Insert呢,这些方法是不是要有一个静态版本呢...3、还有就是异常处理方面,每读写一次数据库就需要try...catch的,真是烦啊