最近做了一个C/s系统,功能是统计月工资,其中有个datagirdview非常麻烦,想提问几个问题,
首先我想自定义一列,然后列的名称是数据库中的一个表的一条记录的一个值,比如表A中有记录
1 伙食费  200
2 交通费  150 
我想把伙食费 跟 交通费当作datagridview的一个自定义列名,请问该如何实现,还有我想加1自定义列,列的值为这条记录中的cells[5],cells[6]的和,请问该如何去做?

解决方案 »

  1.   

    自定义datagirdview列的样式和名称在Form中的构造函数中加入自定义datagirdview列的函数public Form_FZCGTJ()
    {
         InitializeComponent();
         InitializeDataGrid(); //自定义datagirdview列的样式函数
    }
    InitializeDataGrid()函数的内容private void InitializeDataGrid()
    {
          DataGridViewTextBoxColumn HSFColumn = new DataGridViewTextBoxColumn();
          ZMCColumn.Name = "hsf";
          ZMCColumn.HeaderText = "伙食费";
          ZMCColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;      DataGridViewTextBoxColumn JTFColumn = new DataGridViewTextBoxColumn();
          LTGGDZHSColumn.Name = "jtf";
          LTGGDZHSColumn.HeaderText = "交通费";
          LTGGDZHSColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;      datagird.Columns.AddRange(new DataGridViewColumn[] { HSFColumn, JTFColumn });
    }列的HeaderText的值,可以之前通过你的数据库获得定义后赋值的方法是:
    先处理自己要用的数据,把结果用下面方法添加进datagird
    datagird.Rows.Add(new object[] { 第一列的值, 第二列的值, ...., 第N列的值 });
      

  2.   

    上面的InitializeDataGrid()方法有错,应该是:private void InitializeDataGrid()
    {
          DataGridViewTextBoxColumn HSFColumn = new DataGridViewTextBoxColumn();
          HSFColumn.Name = "hsf";
          HSFColumn.HeaderText = "伙食费";
          HSFColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;      DataGridViewTextBoxColumn JTFColumn = new DataGridViewTextBoxColumn();
          JTFColumn.Name = "jtf";
          JTFColumn.HeaderText = "交通费";
          JTFColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;      datagird.Columns.AddRange(new DataGridViewColumn[] { HSFColumn, JTFColumn });
    }
      

  3.   

    不对,我不是那个意思,我的意思是,先用SQL语句查询出表A中的字段跟记录,然后用语句加,因为表A的数据是可变的,可以进行差插入!
    我想问如何再写语句,动态的将表A里的东西绑定到datagridview!
    我自己想了点思路,就是
    string source = "pcdb.mdb";
                string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + source;
                string sql = "select * from 表B";
     OleDbConnection conn = new OleDbConnection(conn);
                OleDbDataAdapter sda = new OleDbDataAdapter(sql,conn);
                DataSet ds = new DataSet();
                sda.Fill(ds,"ryzl");
                DataTable dt = new DataTable();
                dt = ds.Tables["ryzl"];
                DataRow dr;
                dt.Columns.Add(new DataColumn());这里面就该添加列名了,列名对应的就是表A中的伙食费等等,但是我没思路了~!