比如 3个textbox 姓名,年龄,成绩。id 分别为 t1,t2,t3
当我每向3个texbox输入内容一次,datagrid就增加1行,再输入数据,就再增加,以此类推,增加事件函数是一个button1按扭触发。gatagrid的标题是 (姓名  年龄  成绩 )所有数据不经过数据库。可不可以举个例子,或者就我说的情况写(是web上),再次感谢大家的帮助!! (c#)

解决方案 »

  1.   

    有两种方法,一种是用dataset,一种是用List,你想用哪种??
      

  2.   

    这个就是 行成一个数据集绑定GridView啊,再增加的时候往前面那数据集增加记录。再绑定
      

  3.   

    DataSet绑定datagrid,每次添加直接添加到Dataset中就可以了。
      

  4.   

    实例化一个DataTable
    DataTable dt = new DataTable();
    dt.Columns.Add(new DataColumn("姓名", typeof(System.String)));
    dt.Columns.Add(new DataColumn("年级", typeof(System.Decimal)));
    dt.Columns.Add(new DataColumn("年龄", typeof(System.Decimal)));在按钮单击事件中写:
    DataRow dr;
    dr = dt.NewRow();
    dr[0] = "姓名";
    dr[1] = "年级";
    dr[2] = "年龄";
    dt.Rows.Add(dr);
    dataGridView1.datasource = dt;
    dataGridView1.databind();
      

  5.   

    我说错了,其实用DataTable或者List就可以了
      

  6.   

    将数据DataSet保存住 添加一条记录 再绑定
      

  7.   

    详细例子如下,我测试通过了!
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;public partial class Default2 : System.Web.UI.Page
    {
        DataTable dt = new DataTable();    protected void Page_Load(object sender, EventArgs e)
        {
            CreateTable();
            BindGridView();
        }    protected void Button1_Click(object sender, EventArgs e)
        {
            AddData();
            BindGridView();
        }    /// <summary>
        /// 创建表及结构
        /// </summary>
        private void CreateTable() 
        {
            dt.Columns.Add(new DataColumn("姓名", typeof(System.String)));
            dt.Columns.Add(new DataColumn("年龄", typeof(System.Int32)));
            dt.Columns.Add(new DataColumn("成绩", typeof(System.Decimal)));
        }    /// <summary>
        /// 绑定Grid
        /// </summary>
        private void BindGridView() 
        {
            GridView1.DataSource = dt;
            GridView1.DataBind();
        }    /// <summary>
        /// 增加表中数据
        /// </summary>
        private void AddData()
        {
            DataRow dr;
            dr = dt.NewRow();
            dr[0] = TextBox1.Text;
            dr[1] = Int32.Parse(TextBox2.Text);
            dr[2] = Decimal.Parse(TextBox3.Text);
            dt.Rows.Add(dr);
        }}
      

  8.   

    小可飞到,t1,t2,t3是不是给dr[0],dr[1],dr[2]
      

  9.   

    t1,t2,t3是不是给dr[0],dr[1],dr[2]是的
    只能加1行?我看看是不是代码问题,稍等
      

  10.   

    原因是增加一行后,页面向服务器提交一次,所以重新实例化一个DataTable,要用Session,稍等
      

  11.   

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;public partial class Default2 : System.Web.UI.Page
    {   
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                CreateTable();
            }        BindGridView();
        }    protected void Button1_Click(object sender, EventArgs e)
        {
            AddData();
            BindGridView();
        }    /// <summary>
        /// 创建表及结构
        /// </summary>
        private void CreateTable() 
        {
            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("姓名", typeof(System.String)));
            dt.Columns.Add(new DataColumn("年龄", typeof(System.Int32)));
            dt.Columns.Add(new DataColumn("成绩", typeof(System.Decimal)));
            Session["myTable"] = dt;
        }    /// <summary>
        /// 绑定Grid
        /// </summary>
        private void BindGridView() 
        {
            DataTable dt = (DataTable)Session["myTable"];
            GridView1.DataSource = dt;
            GridView1.DataBind();
        }    /// <summary>
        /// 增加表中数据
        /// </summary>
        private void AddData()
        {
            DataTable dt = (DataTable)Session["myTable"];
            DataRow dr;
            dr = dt.NewRow();
            dr[0] = TextBox1.Text;
            dr[1] = Int32.Parse(TextBox2.Text);
            dr[2] = Decimal.Parse(TextBox3.Text);        
            dt.Rows.Add(dr);
            Session["myTable"] = dt;
        }}
      

  12.   

    这个我前段时间做过,显示要绑定的ds放入session(你没有这个要求);
    取出session后,递交给DataTable;
    然后对dt进行增加删除的操作;
    最后进行显示控件的绑定;
    具体过程就这样;
      

  13.   

    少了一个:
    最后进行显示控件的绑定;
    这个后面还需要把dt数据再次存入session
      

  14.   

    hy_lihuan() ( ) 信誉:98    Blog  2007-3-17 11:29:08  得分: 0  
    少了一个:
    最后进行显示控件的绑定;
    这个后面还需要把dt数据再次存入session----------------------------
    顺序应该是先存再绑定
      

  15.   

    谢谢小可飞刀,成功了。怎么给分??!!,
    最后一个问题,我最终想实现先统计总成绩,但中间失误错添加了1个成绩,要在datagrid里删除这行,怎么实现呢?还有我要将数据录入数据库,我知道要循环读gridview的每行每列,那怎么表示,哪行的哪列呢?
      

  16.   

    读GRIDVIEW其实就是SELECT,这个你可以看看相关SQL语句..
    select 字段1,字段2.... from 表名 where 条件
    这样读取之后,绑定到GRIDVIEW,排列方式就是字段1 字段2 字段3
    关于行,那当然是 where 
    比如where id='1'
    那么你读的就是ID字段=1的所有数据,显示字段1,字段2,字段3。
    一般如果只读一条的话,应该要在数据库建主键