1.在数据集DataSet,DataReader等绑定到数据表DataGrid,DataReapter后,如何再次查询数据库?如:有字段username是lihui,我要再次到数据表USER里面找username为lihui的realname(真实姓名),再把真实姓名显示在数据表中(注:不能用SQL语句并集去实现)
2.在显示的时候,如果某一行符合特定条件,我要让该行所有字变成粗体,底色变成兰色.如所有性别为男的行记录,都用粗体字,且行的底色为兰色
3.在构造存储过程参数的时候new SqlParameter("@title",SqlDbType.VarChar,50)); 和new SqlParameter("@title")); 都能用,但是他们之间有什么区别吗?那个好一些?希望大家给出源码,提示一下.

解决方案 »

  1.   

    1.在数据集DataSet,DataReader等绑定到数据表DataGrid,DataReapter后,如何再次查询数据库?如:有字段username是lihui,我要再次到数据表USER里面找username为lihui的realname(真实姓名),再把真实姓名显示在数据表中(注:不能用SQL语句并集去实现)
    ===绑定之后,数据源就没有了,如果是有限的信息,那么可以用一个不可见的绑定列保存之2.在显示的时候,如果某一行符合特定条件,我要让该行所有字变成粗体,底色变成兰色.如所有性别为男的行记录,都用粗体字,且行的底色为兰色
    ===以DataGrid为例,在它的ItemDataBound事件处理程序里:
    if(e.Item.ItemIndex>-1)
    {
         string sex = e.Item.Cells[1].Text;
         if(sex=="男"){
            e.Item.Font.Bold = true;
           e.Item.BackColor = System.Drawing.Color.Blue;
         }
    }
    3.在构造存储过程参数的时候new SqlParameter("@title",SqlDbType.VarChar,50)); 和new SqlParameter("@title")); 都能用,但是他们之间有什么区别吗?那个好一些?
    ======在已知字段类型和长度的情况下,当然是指定之更好,否则,传到数据库之后有可能因为数据类型不匹配或者超出长度导致一个数据库异常,而这样的异常,本应避免传到数据库
      

  2.   

    1.
    绑定之后,数据源就没有了,如果是有限的信息,那么可以用一个不可见的绑定列保存之
    2.
    以DataGrid为例,在它的ItemDataBound事件处理程序里:
    if(e.Item.ItemIndex>-1)
    {
         string sex = e.Item.Cells[1].Text;
         if(sex=="男"){
            e.Item.Font.Bold = true;
           e.Item.BackColor = System.Drawing.Color.Blue;
         }
    }
    3.
    在已知字段类型和长度的情况下,当然是指定之更好,否则,传到数据库之后有可能因为数据类型不匹配或者超出长度导致一个数据库异常,而这样的异常,本应避免传到数据库
      

  3.   

    1.
    绑定之后,数据源就没有了,如果是有限的信息,那么可以用一个不可见的绑定列保存之
    2.
    以DataGrid为例,在它的ItemDataBound事件处理程序里:
    if(e.Item.ItemIndex>-1)
    {
         string sex = e.Item.Cells[1].Text;
         if(sex=="男"){
            e.Item.Font.Bold = true;
           e.Item.BackColor = System.Drawing.Color.Blue;
         }
    }
    3.
    在已知字段类型和长度的情况下,当然是指定之更好,否则,传到数据库之后有可能因为数据类型不匹配或者超出长度导致一个数据库异常,而这样的异常,本应避免传到数据库
      

  4.   

    1 可以缓存dataset到viewstate或者session里面,然后你要查询就取,不过要及时更新
      

  5.   

    2.
    在它的ItemDataBound事件处理程序里(datagrid或者datalist或者repeater):
    if(e.Item.ItemIndex>-1)
    {
        Label myflag = (Label)e.item.findcontrol("flag");
        string sex = myflag.text;
         if(sex=="男"){
            e.Item.Font.Bold = true;
           e.Item.BackColor = System.Drawing.Color.Blue;
         }
    }