初学者。我在书上看到诸如下列的语句,不是很明白,特请教各位:......SqlDataAdapter da_tasktype = new SqlDataAdapter("FillTaskTypeBox",myConn);
ad_tasktype.SelectCommand.CommandType = CommandType.StoredProcedure;
DataSet ds_TaskType = new DataSet();
da_Tasktype.Fill(ds_TaskType,"TaskType");
taskTypeList.DataSource = ds_TaskType.Tables["TaskType"];
taskTypeListbox.DisplayMember = "TypeTitle";
taskTypeListbox.ValueMember = "TASKTYPE_ID";以上代码是通过"FillTaskTypeBox"存储过程为ComboBox(taskTypeList)填充内容。我有两个地方不太懂:1. Fill填充那条语句括弧中的"TaskType"代表什么意思,是数据库表的名称吗,还是随便起个名称;2. 倒数第二行的DisplayMember属性是用来指定要用来填充ComboBox的表字段名称,那ValueMember属性是干什么用的?

解决方案 »

  1.   

    我查了一下别的书,上面说:数据适配器也可以写成da_Tasktype.Fill(ds_TaskType);,即不需要第二个参数。另外一点是,我把上面代码的倒数第一行注释掉了结果仍正常运行,好像用不用都可以似的。
      

  2.   

    ***.DataSource=ds;
    ***.DataMember="TableName";
    和单独写一行
    ***.DataSource=ds.Tables["TableName"];
    效果一样。vs2005 winform开始推荐使用BindingSource作为中间层。确实有很多方便的地方,希望多用BindingSource.
      

  3.   

    >> Fill填充那条语句括弧中的"TaskType"代表什么意思,是数据库表的名称吗,还是随便起个名称;
    可以算是随便起个名称吧。就是本地DataTable的名称。
    >> 倒数第二行的DisplayMember属性是用来指定要用来填充ComboBox的表字段名称,那ValueMember属性是干什么用的?
    一般是这样。
    比如数据库
    ID     Name    Age ...
    1      name1   20
    2      name2   21
    3      name3   22
    ...那么一般ValueMember指定为ID,DisplayMember为Name
    也就是说显示的是姓名,实质上是对应的ID