使用gridview批量录入数据

解决方案 »

  1.   

    是批量导入吧!!
    是不是把gridview里的数据导入到SQL
      

  2.   

    如何使用gridview批量录入数据
      

  3.   

    实现如下功能:在编辑界面中,点击  添加   gridview表格会自动增加一个空行!!!用户可以在空行中录入各列的数据。可以添加多行!!!点击  保存  会将录入的数据批量添加到数据库!同时也可以批量修改表格中显示的数据!!!
      

  4.   

    用DetailsView结合GridView可以达到楼主的目的
    不过你要让SqlDataSource自动生成Insert、Delete、Update的语句
      

  5.   

    不用gridview,点击添加,则产生一个服务器运行的table,样式和列数做的和上面的gridview一样,里面动态生成几个textbox,,
    再点下面的添加按钮,则再添加一个table,点击下面的保存按钮时,则先查找服务器运行的table,里面findcontrol出你动态生成的一些textbox.sql语句用union all 连接。
      

  6.   

    批量录入应该使用DetailsView。
      

  7.   

    假设第一列是主键,后边两列为输入。
    (1)当点击按钮时,用存储过程在数据库中生成n个主键,然后GridView1.DataBind()。这样GridView中就会自动增加n行,这样就解决了自动增加多行的问题。
    (2)在GridView设计时,那两个输入列都设置为模板列,并且ItemTemplate中都是放一个TextBox,这样通过第一步自动增加n行后,后面都是可输入的。
    (3)提交是用DataSet,一行一行读取数据并加入到DataSet,最后Update一下就可以了。
      

  8.   

    此例子达到的效果是: 
    每按一次button1,在表格table1中添加一行(行中有2列,一列是文本框,一列是下拉框),并且当按钮第一次按下时再添加一个按钮,点击这个动态添加的按钮,输出表格中所有的控件的值。 前台: 
    <form id="form1" method="post" runat="server"> 
                <asp:table id="table1" runat="server"></asp:table> 
                <asp:placeholder id="placeholder1" runat="server"></asp:placeholder><br><br> 
                <asp:button id="button1" runat="server" text="添加一行"></asp:button> 
            </form> 
    放置一个table用来动态添加控件,放置一个placeholder用来动态添加按钮,按下这个按钮得到表中控件的值,按下button1按钮一次就添加一行。 后台: button1按钮的事件: 
    private void button1_click(object sender, system.eventargs e) 
            { 
                addtextboxs(); 
                if(viewstate["count"]==null)addbutton(); 
                viewstate["count"]=convert.toint16(viewstate["count"])+1; 
            } 
    两个方法:一个用来动态添加表格中的行,一个用来动态添加按钮(按钮不是按下button1添加一次的,所以加上if(viewstate["count"]==null)表示只有第一次加载按下按钮的时候才添加) 
    private void addtextboxs() 
            { 
                tablerow tr=new tablerow(); 
                tablecell tc1=new tablecell(); 
                textbox t=new textbox(); 
                t.id="tb"+table1.rows.count; 
                tc1.controls.add(t); 
                tablecell tc2=new tablecell(); 
                dropdownlist dpl=new dropdownlist(); 
                dpl.id="dpl"+table1.rows.count; 
                for(int i=0;i<10;i++)dpl.items.add(i.tostring()); 
                tc2.controls.add(dpl); 
                tr.cells.add(tc1); 
                tr.cells.add(tc2); 
                table1.rows.add(tr); 
            } 
     
            private void addbutton() 
            {         
                button b=new button(); 
                b.id="btn"; 
                b.text="按钮"; 
                b.click += new system.eventhandler(btn_click); 
                placeholder1.controls.add(b); 
            } 
    最后是那个动态添加的按钮的事件: 
    private void btn_click(object sender, system.eventargs e) 
            { 
                for(int i=0;i<table1.rows.count;i++) 
                { 
                    response.write(((textbox)table1.rows[i].findcontrol("tb"+i)).text+((dropdownlist)table1.rows[i].findcontrol("dpl"+i)).selectedvalue+"<br>"); 
                } 
            } 
    其实动态添加的控件不复杂,只需要注意一点:动态添加的控件在postback的时候也需要再次添加,那么怎么知道是不是按下了按钮,或者说怎么知道已经按了几次按钮?就用一个标示位存放在viewstate中即可。 page_load事件: 
    private void page_load(object sender, system.eventargs e) 
            { 
                if(viewstate["count"]!=null) 
                { 
                    for(int i=0;i<convert.toint16(viewstate["count"]);i++) 
                        addtextboxs(); 
                    addbutton(); 
                } 
            } 注意不要添加if(!ispostback){},相反你倒可以添加if(ispostback),因为页面第一次加载不可能已经按下按钮了。