CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

100分求这个问题的解决办法,关于gridview批量添加n条记录以后,点一个保存按钮实现一次提交

楼主CQP(悄悄的我走了,正如我悄悄的来)2006-08-14 21:10:34 在 .NET技术 / ASP.NET 提问

我页面上有一个gridview,有一个增加按钮,还有一个提交按钮,怎么实现每点一次增加,gridview下面增加一个空行,再点"提交"按钮实现n行的记录,一次保存到数据库中 问题点数:100、回复次数:19Top

1 楼net_lover(【孟子E章】)回复于 2006-08-14 21:44:44 得分 0

不知道你这个增加多行是怎么加的,你记住每个文本输入框的name属性,在服务器端Request.Form["inputname"]即可获得值,然后用sql语句即可增加Top

2 楼amingo(Atlas 新技术讨论群:6455130(群主))回复于 2006-08-14 21:54:27 得分 0

1,路径问题,保证路径真的没有错误,是在不行你http://xxxx/xx.css用绝对路径测试  
  2,css含有中文,不同的编码造成的,可以将css文件在记事本里另存为utf-8即可Top

3 楼CQP(悄悄的我走了,正如我悄悄的来)回复于 2006-08-14 22:25:09 得分 0

to   amingo:答非所问啊Top

4 楼CQP(悄悄的我走了,正如我悄悄的来)回复于 2006-08-14 22:27:13 得分 0

to   net_lover:你有QQ嘛Top

5 楼csShooter(Sharp Shooter)回复于 2006-08-15 08:15:34 得分 0

如果你的DataGridView是绑定给DataSet就简单了,在DataSet的Table   里面添加一条空记录,再绑定给DataGridView。提交时再update()。。OKTop

6 楼fengyeng(在城里飘~~~~)回复于 2006-08-15 09:07:04 得分 0

upTop

7 楼zzz22333(下蛋公鸡公鸡中的战斗机)(书上说抽烟不好我把烟戒了;书上说喝酒不好我少喝了;书上说媳妇不好我把书撕了)回复于 2006-08-15 09:43:10 得分 0

upTop

8 楼C5662601(你学的越多 你忘的越多 你学的越少 你忘的越少)回复于 2006-08-15 09:54:36 得分 0

如果这个功能是在后台维护的       没必要做那么麻烦  
  要是前台我想别的方法会更好吧Top

9 楼shalen520(Love will keep us alive)回复于 2006-08-15 10:10:31 得分 50

首先构造一个空datatable放到viewstate中,每新增一行就先从viewstate取出datatable,然后往datatable插入一行并绑定Gridview,最后再放回viewstate,如此循环直到添加完毕,提交时,将viewstate中datatable的所有记录插入数据库中即可Top

10 楼leafsword_519(喝水的猪)回复于 2006-08-15 10:30:33 得分 50

同意shalen520(Love   will   keep   us   alive)   (   )   信誉:100    
  1、生成的DataTable或者自己构建的空的DataTable  
  2、ViewState["Data"]   =   DataTable;  
  3、取值:DataTable   dt   =   (DataTable)ViewState["Data"];  
  4、添加数据:DataRow   dr   =   dt.NewRow();  
                          dr[i]   =   ....;    
                          dt.Rows.Add(dr);  
  5、返回给ViewState:ViewState["Data"]=   dt;  
  6、根据dt的记录插入到数据库Top

11 楼artak(甜葡萄)回复于 2006-08-15 10:43:18 得分 0

to   net_lover:你有QQma   ?Top

12 楼lowtemper(小镇姑娘她爹)回复于 2006-08-15 10:57:13 得分 0

存viewstates,一次性提交,只有这个办法,设datasourceid的时候可能会有麻烦,2005中没有类似的datasource类型,可能要自己做datasource,十分巨大的工作量,看你怎么权衡了Top

13 楼redsee(那年那月)回复于 2006-08-15 11:08:34 得分 0

关注     顶上去Top

14 楼sorrow_man(不会我就问,零下一度)回复于 2006-08-15 11:22:12 得分 0

学习Top

15 楼CQP(悄悄的我走了,正如我悄悄的来)回复于 2006-08-15 16:01:31 得分 0

其实只要解决这个问题就行了,用别的方法也可以Top

16 楼jame_peng(可可西里)回复于 2006-08-15 16:08:10 得分 0

public   partial   class   _Default   :   System.Web.UI.Page    
  {  
          protected   void   Page_Load(object   sender,   EventArgs   e)  
          {  
                 
                          createTable();  
                 
          }  
   
          public   void   createTable()   //创建一个空datatable  
          {  
                  DataTable   dt   =   new   DataTable("inserttable");  
   
                  DataColumn   dcname   =   new   DataColumn();  
                  dcname.DataType   =   System.Type.GetType("System.String");  
                  dcname.ColumnName   =   "name";  
                  dt.Columns.Add(dcname);  
   
                  DataColumn   dcshuliang   =   new   DataColumn();  
                  dcshuliang.DataType   =   System.Type.GetType("System.Int32");  
                  dcshuliang.ColumnName   ="shuliang";  
                  dt.Columns.Add(dcshuliang);  
   
                  DataColumn   price   =   new   DataColumn();  
                  price.ColumnName   =   "price";  
                  price.DataType   =   System.Type.GetType("System.Double");  
                  dt.Columns.Add(price);  
   
                  //添加行  
                  int   num   =   Convert.ToInt32(   DropDownList1.SelectedValue   );  
                  for   (int   i   =   0;   i   <   num;   i++)  
                  {  
                          DataRow   dr   =   dt.NewRow();  
                          dr["name"]   =   "";  
                          dr["shuliang"]=Convert.ToInt32("0");  
                          dr["price"]=Convert.ToDouble("0");  
                          dt.Rows.Add(dr);  
                  }  
                 
                  GridView1.DataSource   =   dt;  
                  GridView1.DataBind();  
   
          }  
          protected   void   Button1_Click(object   sender,   EventArgs   e)  
          {  
                  DataTable   dt   =   new   DataTable();  
                  dt   =   getDataTable();  
                  SqlConnection   con   =   new   SqlConnection("server=.;database=test;uid=sa;pwd=");  
                  con.Open();  
                  SqlCommand   cmd   =   new   SqlCommand();  
                  cmd.Connection   =   con;  
                   
                  for   (int   i   =   0;   i   <   dt.Rows.Count;   i++)  
                  {    
                          string   strsql="insert   into   testdatatable   values('"+dt.Rows[i]["name"]+"',"+dt.Rows[i]["shuliang"]+","+dt.Rows[i]["price"]+")";  
                          cmd.CommandType   =   CommandType.Text;  
                          cmd.CommandText   =   strsql;  
                          cmd.ExecuteNonQuery();  
                  }  
                   
   
          }  
   
          public   DataTable   getDataTable()  
          {  
           
                    DataTable   dt   =   new   DataTable("inserttable");  
   
                  DataColumn   dcname   =   new   DataColumn();  
                  dcname.DataType   =   System.Type.GetType("System.String");  
                  dcname.ColumnName   =   "name";  
                  dt.Columns.Add(dcname);  
   
                  DataColumn   dcshuliang   =   new   DataColumn();  
                  dcshuliang.DataType   =   System.Type.GetType("System.Int32");  
                  dcshuliang.ColumnName   ="shuliang";  
                  dt.Columns.Add(dcshuliang);  
   
                  DataColumn   price   =   new   DataColumn();  
                  price.ColumnName   =   "price";  
                  price.DataType   =   System.Type.GetType("System.Decimal");  
                  dt.Columns.Add(price);  
   
                  for   (int   i   =   0;   i   <   GridView1.Rows.Count;   i++)  
                  {  
                          DataRow   dr=   dt.NewRow();  
                          HtmlInputText   t1   =   (HtmlInputText)GridView1.Rows[i].Cells[0].FindControl("TextBox1");  
                          HtmlInputText   t2   =   (HtmlInputText)GridView1.Rows[i].Cells[0].FindControl("TextBox2");  
   
                          //TextBox   t1   =   (TextBox)GridView1.Rows[i].Cells[0].FindControl("TextBox1");  
                          //TextBox   t2   =   (TextBox)GridView1.Rows[i].Cells[1].FindControl("TextBox2");  
                          TextBox   t3   =   (TextBox)GridView1.Rows[i].Cells[2].FindControl("TextBox3");  
                          //TextBox   t1   =   (TextBox)GridView1.FindControl("TextBox1").Controls[0];  
                          //TextBox   t2   =   (TextBox)GridView1.FindControl("TextBox2").Controls[0];  
                          //TextBox   t3   =   (TextBox)GridView1.FindControl("TextBox3").Controls[0];  
                          if   (t1.Value   !=   "")  
                          {  
                                  dr["name"]   =   t1.Value;//((TextBox)GridView1.FindControl("TextBox1").Controls[0]).Text;  
                                  dr["shuliang"]   =   t2.Value;   //((TextBox)GridView1.FindControl("TextBox2").Controls[0]).Text;  
                                  dr["price"]   =   t3.Text;//((TextBox)GridView1.FindControl("TextBox3").Controls[0]).Text;  
                                  dt.Rows.Add(dr);  
                          }  
                  }  
                  GridView2.DataSource   =   dt;  
                  GridView2.DataBind();  
                  return   dt;  
                 
          }  
  }  
  Top

17 楼CQP(悄悄的我走了,正如我悄悄的来)回复于 2006-08-16 13:11:40 得分 0

to   jame_peng(可可西里):能给我发个例子嘛,我的邮件pingkeke@163.comTop

18 楼CQP(悄悄的我走了,正如我悄悄的来)回复于 2006-08-16 20:42:35 得分 0

upTop

19 楼CQP(悄悄的我走了,正如我悄悄的来)回复于 2006-08-17 10:26:17 得分 0

upTop

相关问题

关键词

得分解答快速导航

  • 帖主:CQP
  • shalen520
  • leafsword_519

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo