当前位置: 首页 > 编程日记 > 正文

asp.net 2.0中一次性更新所有GRIDVIEW的记录

在asp.net 2.0中,gridview控件是十分不错的控件。有的时候,可能一个GRIDVIEW控件中
的各行都是文本框,如何一次性更新所有修改过的记录呢?有两种方法,一种是使用sqldatasource来更新
所有记录,但这个方法比较慢,因为每更新一条记录都要建立数据连接并执行updatecommand,会影响性能,
但还是先来看下实现方法:
<%@ Page Language="C#" %>
<script runat="server">
   
    void Button1_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < GridView1.Rows.Count; i++)
        {
            GridViewRow row = GridView1.Rows[i];
            SqlDataSource1.UpdateParameters[0].DefaultValue = ((TextBox)row.Cells[0].FindControl("TextBox2")).Text;
            SqlDataSource1.UpdateParameters[1].DefaultValue = ((TextBox)row.Cells[1].FindControl("TextBox3")).Text;
            SqlDataSource1.UpdateParameters[2].DefaultValue = GridView1.DataKeys[i].Value.ToString();
            SqlDataSource1.Update();
        }
    }   
   
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" Runat="server" DataSourceID="SqlDataSource1" DataKeyNames="CustomerID"
            AutoGenerateColumns="False">
            <Columns>
                <asp:TemplateField SortExpression="CustomerID" HeaderText="CustomerID">
                <ItemTemplate>
                    <asp:TextBox Runat="server" Text='<%# Bind("CustomerID") %>' ID="TextBox1"></asp:TextBox>
                </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField SortExpression="CompanyName" HeaderText="CompanyName">
                    <ItemTemplate>
                        <asp:TextBox Runat="server" Text='<%# Bind("CompanyName") %>' ID="TextBox2"></asp:TextBox>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField SortExpression="ContactName" HeaderText="ContactTitle">
                    <ItemTemplate>
                        <asp:TextBox Runat="server" Text='<%# Bind("ContactTitle") %>' ID="TextBox3"></asp:TextBox>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
        <asp:SqlDataSource ID="SqlDataSource1" Runat="server"
            SelectCommand="SELECT [CustomerID], [CompanyName], [ContactName], [ContactTitle] FROM [Customers]"
            UpdateCommand="UPDATE [Customers] SET [CompanyName] = @CompanyName, [ContactTitle] = @ContactTitle WHERE [CustomerID] = @CustomerID"
            ConnectionString="<%$ ConnectionStrings:AppConnectionString1 %>">
            <UpdateParameters>
                <asp:Parameter Type="String" Name="CompanyName"></asp:Parameter>
                <asp:Parameter Type="String" Name="ContactTitle"></asp:Parameter>
                <asp:Parameter Type="String" Name="CustomerID"></asp:Parameter>
            </UpdateParameters>
        </asp:SqlDataSource>
        <asp:Button ID="Button1" Runat="server" Text="Button" OnClick="Button1_Click" />&nbsp;
   
    </div>
    </form>
</body>
</html>
另外一个方法是用组合SQL语句来进行的,速度比较快,原理也容易明白
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Text" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script runat="server">
   
    void Button1_Click(object sender, EventArgs e)
    {
        StringBuilder query = new StringBuilder();
       
        for (int i = 0; i < GridView1.Rows.Count; i++)
        {
            GridViewRow row = GridView1.Rows[i];
            string value1 = ((TextBox)row.Cells[0].FindControl("TextBox2")).Text.Replace("'","''");
            string value2 = ((TextBox)row.Cells[1].FindControl("TextBox3")).Text.Replace("'","''");
            string value3 = GridView1.DataKeys[i].Value.ToString();
            query.Append("UPDATE [Customers] SET [CompanyName] = '")
                .Append(value1).Append("' , [ContactTitle] = '")
                .Append(value2).Append("' WHERE [CustomerID] = '")
                .Append(value3).Append("';/n");
           
        }
        SqlConnection con = new SqlConnection(ConfigurationSettings.ConnectionStrings["AppConnectionString1"].ConnectionString);
        SqlCommand command = new SqlCommand(query.ToString(), con);
        con.Open();
        command.ExecuteNonQuery();
        con.Close();
    }
    void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            SqlConnection con = new SqlConnection(ConfigurationSettings.ConnectionStrings["AppConnectionString1"].ConnectionString);
            SqlCommand command = new SqlCommand("SELECT [CustomerID], [CompanyName], [ContactName], [ContactTitle] FROM [Customers]", con);
            con.Open();
            GridView1.DataSource = command.ExecuteReader();
            GridView1.DataBind();
            con.Close();
        }
    }
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" Runat="server" DataKeyNames="CustomerID"
            AutoGenerateColumns="False">
            <Columns>
                <asp:TemplateField SortExpression="CustomerID" HeaderText="CustomerID">
                <ItemTemplate>
                    <asp:TextBox Runat="server" Text='<%# Bind("CustomerID") %>' ID="TextBox1"></asp:TextBox>
                </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField SortExpression="CompanyName" HeaderText="CompanyName">
                    <ItemTemplate>
                        <asp:TextBox Runat="server" Text='<%# Bind("CompanyName") %>' ID="TextBox2"></asp:TextBox>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField SortExpression="ContactName" HeaderText="ContactTitle">
                    <ItemTemplate>
                        <asp:TextBox Runat="server" Text='<%# Bind("ContactTitle") %>' ID="TextBox3"></asp:TextBox>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
      
        <asp:Button ID="Button1" Runat="server" Text="Button" OnClick="Button1_Click" />&nbsp;
   
    </div>
    </form>
</body>
</html>


相关文章:

清华 CVer 对自监督学习的一些思考

来源 | Jack Cui责编 | 晋兆雨头图 | CSDN 下载自视觉中国众所周知&#xff0c;机器学习大致可分为有监督学习和无监督学习。自监督学习作为无监督学习的一个特例&#xff0c;可以理解它是一种没有人工标注标签的监督学习&#xff0c;即没有人类参与的监督学习。但标签仍然存在…

使用 HTML5 时如何改进移动 Web 应用开发

因为 HTML 有易于维护&#xff0c;更好的互动性&#xff0c;更快的开发等优点&#xff0c;被越来越多的应用在移动 Web 应用程序的开发中。HTML5 是一种标记语言&#xff0c;与 Javascript 和 CSS 一起&#xff0c;构成了每个开发者的核心技术&#xff0c;HTML5 拥有自己的 API…

hibernate.cfg.xml详细配置

<!--标准的XML文件的起始行&#xff0c;version1.0表明XML的版本&#xff0c;encodinggb2312表明XML文件的编码方式--> <?xml version1.0 encodinggb2312?> <!--表明解析本XML文件的DTD文档位置&#xff0c;DTD是Document Type Definition 的…

ASP.NET2.0中用Gridview控件操作数据

在ASP.NET 2.0中&#xff0c;加入了许多新的功能和控件&#xff0c;相比asp.net 1.0/1.1&#xff0c;在各方面都有了很大的提高。其中&#xff0c;在数据控件方面&#xff0c;增加了不少控件&#xff0c;其中的Gridview控件功能十分强大。在本文中&#xff0c;将探讨Gridview控…

人工智能在消费领域,都做了哪些事?

来源 | 人民数字FINTECH责编 | 晋兆雨头图 | CSDN 下载自视觉中国#AI正在融入生活的方方面面近日&#xff0c;北京一购物中心开业&#xff0c;在开业当天迎宾的并不是“人”而是“机器人”。在这里你可以体验到高科技高颜值的机器人“迎宾团”给你带来的贵宾级的服务&#xff0…

poj 1681 Painter#39;s Problem(高斯消元)

http://poj.org/problem?id1681 求最少经过的步数使得输入的矩阵全变为y。 思路&#xff1a;高斯消元求出自由变元。然后枚举自由变元&#xff0c;求出最优值。注意依据自由变元求其它解及求最优值的方法。 #include <stdio.h> #include <algorithm> #include <…

ASP.NET 2.0中GRIDVIEW排序

在 headertemplate中加一张UP.GIF和DOWN.GIF(就是升序&#xff0c;倒序的示意图&#xff09; % Page Language"C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html…

基础篇9-python基本数据结构-列表

基础篇9-python基本数据结构-列表一.列表&#xff1a;1.有序的集合2.通过偏移来索引&#xff0c;从而读取数据3.支持内嵌a [[1,2,3],[4,5,6]]4.可变类型a[0][1] 7二.切片a [1,2,3,4,5,6,7]a[0:3:1]0 索引开始3 索引结束1 间隔(默认1)正向索引 它是从左往右索引假如要取出1234…

用AI打造科技公益新模式,腾讯发起公益创新挑战赛,聚焦三大社会问题

近日&#xff0c;由腾讯基金会、企鹅伴成长、腾讯优图实验室、腾讯云AI、腾讯云开发联合发起的腾讯Light公益创新挑战赛在三亚宣布正式启动。本次比赛以“AI&#xff0c;让美好现在发生”为主题&#xff0c;与联合国儿童基金会、深圳市信息无障碍研究会、桃花源生态保护基金会三…

一个查看全部用户的磁盘空间使用情况的脚本

一个查看全部用户的磁盘空间使用情况的脚本 脚本程序例如以下&#xff1a; #!/bin/sh for user in ls /home dodu -hs "/home/"$user done脚本运行结果&#xff1a; [rootsyy ~]# . homeusage.sh 32K /home/saleli 9.2G /home/syy 500K /home/wph太简单了…

Gridview导出到Excel,Gridview中的各类控件,Gridview中删除记录的处理

Asp.net 2.0中新增的gridview控件&#xff0c;是十分强大的数据展示控件&#xff0c;在前面的系列文章里&#xff0c;分别展示了其中很多的基本用法和技巧&#xff08;详见&#xff1c; ASP.NET 2.0中Gridview控件高级技巧&#xff1e;)。在本文中&#xff0c;将继续探讨有关的…

对标Oculus Quest2,爱奇艺奇遇VR打的什么牌?

出品 | AI科技大本营 作者 | 阿司匹林 1月6日&#xff0c;爱奇艺奇遇VR在京召开主题为“谁与争锋”的VR技术发布会&#xff0c;正式发布国内首个CV&#xff08;计算机视觉技术&#xff09;头手6DoF VR交互技术——追光&#xff0c;并面向全球VR游戏开发者启动“哥伦布计划”。 …

DVWA默认用户名密码

有些东西不好找啊&#xff0c;自己动手丰衣足食&#xff5e;&#xff5e; DVWA默认的用户有5个&#xff0c;用户名密码如下&#xff08;一个足以&#xff09;&#xff1a; admin/password gordonb/abc123 1337/charley pablo/letmein smithy/password转载于:https://www.cnblog…

idea 基本设置

1. 打开首先设置 maven,添加配置文件 2.自动导入 搜索 auto import ,勾选 Optimize imports on the fly&#xff1a;自动去掉一些没有用到的包Add unambiguous imports on the fly&#xff1a;自动帮我们优化导入的包3.快捷键 切换成 eclipse 版本&#xff0c;智能提示快捷键 …

ASP.NET 2.0 HttpHandler实现生成图片验证码(示例代码下载)

学习整理了一下(一).功能用HttpHandler实现图片验证码(二).代码如下1. 处理程序文件 ValidateImageHandler.ashx代码如下1 <% WebHandler Language"C#"Class"ValidateImageHandler"%>2 3 usingSystem;4 usingSystem.Web;5 usingSystem.Web.SessionSt…

linux下配置ip地址的方法

&#xff08;1&#xff09;Ifconfig命令第一种使用ifconfig命令配置网卡的ip地址。此命令通常用来零时的测试用&#xff0c;计算机启动后ip地址的配置将自动失效。具体用法如下。Ipconfig ethx ipadd netmask x.x.x.x。其中ethx中的x代表第几快以太网卡&#xff0c;…

百万美元技术大奖,雷军颁给了秒充和隐私保护技术团队

1月7日&#xff0c;2020年小米百万美金技术大奖揭晓&#xff0c;经过小米集团技术委员会多轮评选&#xff0c;手机部小米秒充团队、软件与体验部的MIUI隐私保护团队&#xff0c;双双赢得了价值100万美元的技术大奖&#xff08;小米受限股&#xff09;。 120W有线秒充&#xff…

在 Android 应用程序中使用 SQLite 数据库以及怎么用

part one : android SQLite 简单介绍 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库。它支持 SQL 语言&#xff0c;而且仅仅利用非常少的内存就有非常好的性能。此外它还是开源的&#xff0c;不论什么人都能够使用它。很多开源项目&#xff08;(Mozilla, PHP, Python&#xf…

asp.net 2.0 权限树的控制

做权限的时候,主要实现如下功能1、该节点可以访问&#xff0c;则他的父节点也必能访问&#xff1b;2、该节点可以访问&#xff0c;则他的子节点也都能访问&#xff1b;3、该节点不可访问&#xff0c;则他的子节点也不能访问。使用带CheckBox的数型结构能得到很好的用户体验,可是…

腾讯首位17级杰出科学家诞生:腾讯AI Lab负责人张正友

2021年1月8日腾讯宣布&#xff0c;腾讯Robotics X实验室及腾讯AI Lab负责人张正友博士成为腾讯首位17级研究员/杰出科学家&#xff0c;17级是腾讯历史上最高的专业职级。 腾讯AI Lab及腾讯Robotics X实验室负责人张正友博士荣获这一殊荣的张正友博士&#xff0c;领导创建了世界…

论性能测试的必要性

论性能测试的必要性说起为什么要进行性能测试&#xff0c;前面已经多少谈到一些。下面&#xff0c;从“性能测试与功能测试关系”及“性能自动化测试优势”两方面给读者作答。1. 性能测试与功能测试关系性能测试和功能测试是测试工作中两个不同的方面&#xff0c;只是在关注的内…

Spring学习系列(二) 自动化装配Bean

一、Spring装配-自动化装配 Component和ComponentScan 通过spring注解&#xff08;Component&#xff09;来表明该类会作为组件类&#xff0c;并告知Spring要为这类创建bean&#xff0c;不过组件扫描默认是不启动的&#xff0c;需要显式的配置Spring&#xff0c;从而命令Spring…

如何让SELECT 查询结果额外增加自动递增序号

图表1如果数据表本身并不内含自动地增编号的字段时&#xff0c;要怎么做才能够让SELECT查询结果如图表1所示&#xff0c;额外增加自动递增序号呢&#xff1f;我们提供下列五种方法供您参考&#xff1a;USE北风贸易;GO/* 方法一*/SELECT序号(SELECT COUNT(客户编号)FROM 客户AS …

UVa 10131

1 /*2 3 * 类似于最长递减子序列4 */5 #include<stdio.h>6 7 #include<string.h>8 #include<algorithm>9 using namespace std; 10 #define Max(x,y) (x>y?x:y) 11 #define max 10005 12 struct node{ 13 int w,s,c; 14 }a[max]; 15 int dp[max]; 16…

再见 VBA!神器工具统一 Excel 和 Python

作者 | 东哥起飞来源 | Python数据科学经常给大家推荐好用的数据分析工具&#xff0c;也收到了铁子们的各种好评。这次也不例外&#xff0c;我要再推荐一个&#xff0c;而且是个爆款神器。Excel和Jupyter Notebok都是我每天必用的工具&#xff0c;而且两个工具经常协同工作&…

Android 开发者必知的开发资源

英文原文&#xff1a;Bongzimo 翻译: ImportNew-黄小非 译文链接&#xff1a;http://www.importnew.com/3988.html Android 开发者必知的开发资源 随着Android平台市场份额的持续猛增 &#xff0c;越来越多的开发者开始投入Android应用程序的开发大潮。如果您是一位2013年刚刚…

SQL Server各种日期计算方法

通常&#xff0c;你需要获得当前日期和计算一些其他的日期&#xff0c;例如&#xff0c;你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割&#xff08;年、月、日等&#xff09;&#xff0c;然后仅仅用分割出来的年、月、日等放在几…

TensorFlow入门

为什么80%的码农都做不了架构师&#xff1f;>>> TensorFlow核心教程 导入TensorFlow计算图tf.train API 完成程序tf.contrib.learn 基本用法自定义模型下一步原文链接 : https://www.tensorflow.org/get_started/get_started 译文链接 : http://www.apache.wiki/pa…

C#实现类似qq的屏幕截图程序

因为近来想写个类似于远程桌面监控的程序,该程序中要用到屏幕捕捉.为实现该程序的一部分功能,做了个小DEMO.程序很简单&#xff0c;用到的技术也不多&#xff0c;只能实现类似qq的截图功能(方法虽然很笨) 程序流程如下&#xff1a;1.截取整个屏幕并保存 2.新开一个全屏窗口,将保…