关于winForms中listView的使用心得

        放假回家了..闲的没事干,趁着家里暖和..自己做了一个小东西.宠物诊所..本来是jsp的东西.叫我给改成.net版本了.
 嘿嘿.觉得不错.做起来比jsp简单多了.而且.net的IDE vs2005被评为现在最好的开发平台吗.呵呵.
        本来设计的时候全部用DataGridView,数据库连接使用无连接.用户的增删改查全部在DataGridView里面进行,后来
想想觉得不实际.也不专业.应该把用户对数据的编辑和浏览分开比较好,后来我决定用户的编辑采用ListView.无非就是多了
几个窗体.多写几个类和方法.
        首先把DataGridView的ReadOnly设置为true(只读).不允许更改.然后把SelectionMode设置为FullRowSelect(选择
一整行).这样DataGirdView的功能就只有看了.只弄一个放在主界面就可以了..当用户点相应的模块的编辑选项就会出现带有
ListView的窗体进行编辑了。ListView需要设置View属性,设置为Details(细节)要不没发正常显示.在把FullRowSelect设为
True.(选择一行).就可以了.下面讲如何进行编辑.
        要编辑首先要把数据库的信息放到ListView里面.,最好写几个类似javaBean的属性方法,就是get(),set();比如我拿主人
表当例子,这个表有id,name,city,address,telephone这几个字段.先写一个得到所有主人信息的方法public owners[] getAllOwners();

public owners[] getAllOwners()
{
  SqlConnection conn 
= new SqlConnection(.)//连接数据库
            string sql = "select *from owners";   
            SqlDataAdapter sd 
= new SqlDataAdapter(sql,con);
            conn .Open();
            DataTable dt 
= new DataTable();
            sd.Fill(dt);

            owners[] ows
= new owners[dt.Rows.Count];
            
for (int i = 0; i < dt.Rows.Count;i++ )
            
{
                ows[i] 
= new OwnersBll();
                ows[i].OwnerID
=(int) dt.Rows[i]["id"];
                ows[i].OwnerName 
= dt.Rows[i]["name"].ToString();
                ows[i].OwnerAddress 
=dt.Rows[i]["address"].ToString();
                ows[i].OwnerCity 
= dt.Rows[i]["city"].ToString();
                ows[i].OwnwerTelephone 
= dt.Rows[i]["telephone"].ToString();
            }

            conn .Close();
            
return ows;
}

这个方法就可以从界面调用了.具体实现如下.

Code

这样就可以保证每次打开这个编辑窗口的时候都是数据库的最新内容了.


下面讲如何进行编辑
编辑还是要写方法.比如拿删除当例子吧.都知道要根据ID删除.那就写个这个public int deleteOwners(int id);

Code

写了这个还不行..所以还要写一个根据ID查询一行信息的方法.因为我是把值查出来放到文本框里的.这样编辑起来方便

Code

写完上面那个方法就算基本完成了.只差写ListView的SelectIndexChanged的事件了.具体如下;

Code
Type text here
Type text here
OK.这样每次进行增删改的时候直接取文本的值就可以了.非常方便.也很美观.DataGirdView其实可以完全取代这些功能,但是在vs2005里listView的分量绝对是比
DataGridView大的.
        

 

posted @ 2008-01-21 20:54  Shinepolo  阅读(2225)  评论(0编辑  收藏  举报