Gridview查询后,对查询结果进行编辑,可无法定位我要的记录行,解决方法

本文主要是介绍Gridview查询后,对查询结果进行编辑,可无法定位我要的记录行,解决方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

终于解决了!
这是由于SQLDataSource中的SelectCommand是不被保留的。  
所以当您修改了SelectCommand后,点击了编辑后,ASP.net会自动再重新生成一次SqlDataSource,而他的SelectCommand依旧使用的还是原先默认设置中的select * from Table。所以他会从去数据库中,将所有的数据都都回来。  
解决的方法就是将SelectCommand加入到Session或是ViewState或是Cookie中,然后再每次页面Load的时候,将内容付给SqlDataSource  
如下:  
1、将页面中自动生成的数据源查询命令语句设置为空。然后在 pageload中 检查session如果不为空则说明有查询语句,赋给即可。如果初次打开页面,可以else 给默认语句,即可。
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)  ‘控件查询事件
{  
SqlDataSource1.SelectCommand = "select * from table4 where id = '6'";  
Session["SqlDataSouce1Command"] = SqlDataSource1.SelectCommand;  
}  

protected void Page_Load(object sender, EventArgs e)  
{  
if (!(Session["SqlDataSouce1Command"] == null))  
SqlDataSource1.SelectCommand = Session["SqlDataSouce1Command"].ToString();  

}  

vb.net 的
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

'将数据源 语句存到sesson中,而不是写在页面中  为了解查询结果不编辑时,行错。
If Session("sqlcmd") <> "" Then '如果session中有语句则就设置上
AccessDataSource1.SelectCommand = Session("sqlcmd").ToString()
End If

End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim can1, can2 As String
can1 = DropDownList1.SelectedValue
can2 = TextBox1.Text
If can2.Trim() <> "" Then
AccessDataSource1.SelectCommand = "SELECT  *  FROM [gslist] where " & can1 + " like'" & can2 + "%'"
GridView1.DataBind()
If GridView1.Rows.Count() = 0 Then Button2.Enabled = False Else Button2.Enabled = True
End If

'将语句存放到session中
AccessDataSource1.SelectCommand = "SELECT  *  FROM [gslist] where " & can1 + " like'" & can2 + "%'"
Session("sqlcmd") = AccessDataSource1.SelectCommand
End Sub

这篇关于Gridview查询后,对查询结果进行编辑,可无法定位我要的记录行,解决方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/934428

相关文章

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

linux解压缩 xxx.jar文件进行内部操作过程

《linux解压缩xxx.jar文件进行内部操作过程》:本文主要介绍linux解压缩xxx.jar文件进行内部操作,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、解压文件二、压缩文件总结一、解压文件1、把 xxx.jar 文件放在服务器上,并进入当前目录#

SpringBoot中如何使用Assert进行断言校验

《SpringBoot中如何使用Assert进行断言校验》Java提供了内置的assert机制,而Spring框架也提供了更强大的Assert工具类来帮助开发者进行参数校验和状态检查,下... 目录前言一、Java 原生assert简介1.1 使用方式1.2 示例代码1.3 优缺点分析二、Spring Fr

Java 方法重载Overload常见误区及注意事项

《Java方法重载Overload常见误区及注意事项》Java方法重载允许同一类中同名方法通过参数类型、数量、顺序差异实现功能扩展,提升代码灵活性,核心条件为参数列表不同,不涉及返回类型、访问修饰符... 目录Java 方法重载(Overload)详解一、方法重载的核心条件二、构成方法重载的具体情况三、不构

SQL中如何添加数据(常见方法及示例)

《SQL中如何添加数据(常见方法及示例)》SQL全称为StructuredQueryLanguage,是一种用于管理关系数据库的标准编程语言,下面给大家介绍SQL中如何添加数据,感兴趣的朋友一起看看吧... 目录在mysql中,有多种方法可以添加数据。以下是一些常见的方法及其示例。1. 使用INSERT I

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert

Python使用pip工具实现包自动更新的多种方法

《Python使用pip工具实现包自动更新的多种方法》本文深入探讨了使用Python的pip工具实现包自动更新的各种方法和技术,我们将从基础概念开始,逐步介绍手动更新方法、自动化脚本编写、结合CI/C... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核