需求:在数据库表中有一标志位字段[“Flag”],我将其默认值设置为0,不符合规则的比如设置为1,那么在Form中我要查询这个表的信息(可能条件查询,只显示符合条件的信息),我想将不符合规则的行的颜色变换为红色。
问题:1 请问应该怎样写代码来获得DataGridview中的某一行。
      2 将这一行颜色变换为红色。
需求2:我想将当前DataGridview中的信息打印出来,我新建了一水晶报表,新建一Form中添加 了这个水晶报表。
问题:怎样将水晶报表的数据源与DataGridview中的表联系起来。
                                                                              谢谢!

解决方案 »

  1.   

      string sqlstr = "select top 10 * from [file]";
            sqlcon = new SqlConnection(strCon);
            SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
            DataSet myds = new DataSet();
            sqlcon.Open();
            myda.Fill(myds);
            GridView1.DataSource = myds;
            GridView1.DataKeyNames = new string[] { "身份证号码" };
            GridView1.DataBind();
            for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
            {
                DataRowView mydrv = myds.Tables[0].DefaultView[i];
                string score = Convert.ToString(mydrv["起薪"]);
                if (Convert.ToDouble(score) < 34297.00)            {
                    GridView1.Rows[i].Cells[4].BackColor = System.Drawing.Color.Red;//对不符合要求的地方设置行
                }
            }
            sqlcon.Close();在绑定的时候进行过滤
      

  2.   

    首先谢谢你!   
    GridView1.Rows[i].Cells[4].BackColor = System.Drawing.Color.Red;
    你这行代码是把第i-1行,第3列的单元格设置颜色,我说的是控制某一行,这个问题我已经解决了。  第二个水晶报表的问题还没解决。 怎样将怎样将水晶报表的数据源与DataGridview中的表联系起来?打印时显示的是DataGridview中的内容而不是数据库中某一个表的全部信息?