在SQLDatasource中使用存储过程时,Gridview不显示

2024-05-24

我以前偶然发现过这个问题,我知道这是一个常见问题。一个相关的问题是网格视图为空 https://stackoverflow.com/q/5596451/777982。但这并不能解决我的问题。

理想情况下,我想要的是当我单击“查找”按钮时根据文本框中的值更新我的网格视图。它在我的其他页面上确实对我有用。但我这里有一些问题。我没有更改任何默认参数。这是网格视图

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
    DataSourceID="SqlDataSource1" AutoGenerateColumns="False" 
    DataKeyNames="ID">
    <Columns>
        <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" 
            ReadOnly="True" SortExpression="ID" />
        <asp:BoundField DataField="companyname" HeaderText="companyname" 
            SortExpression="companyname" />
        <asp:BoundField DataField="contactfirstname" HeaderText="contactfirstname" 
            SortExpression="firstname" />
        <asp:BoundField DataField="contactlastname" HeaderText="contactlastname" 
            SortExpression="lastname" />
        <asp:BoundField DataField="phonenumber" HeaderText="phonenumber" 
            SortExpression="phonenumber" />
        <asp:BoundField DataField="contactid" HeaderText="contactid" 
            SortExpression="contactno" />
    </Columns>
</asp:GridView>

在我的“查找”按钮单击事件中。我正在使用这个代码

protected void btnFind_Click(object sender, EventArgs e)
{
    SqlDataSource1.DataBind(); /* Edit: I don't need this, I realized */
}

但它不加载任何东西。整个网格视图不会出现。如果我使用 select 语句,网格视图会显示结果。我已经在 gridview 中测试了我的存储过程,它按应有的方式工作。不知道这里到底可能出现什么问题?有人遇到过吗?

我想我在某处读过如果存储过程返回0结果,gridview将不会显示。

我的 SQL 数据源

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:MyDBconn %>" 
    SelectCommand="usp_GetContactNo" SelectCommandType="StoredProcedure">
    <SelectParameters>
        <asp:FormParameter DefaultValue="" FormField="txtCompanyName" 
            Name="companyname" Type="String" />
        <asp:FormParameter FormField="txtFirstName" Name="firstname" Type="String" />
        <asp:FormParameter FormField="txtLastName" Name="lastname" Type="String" />
        <asp:FormParameter FormField="txtPhone" Name="phone" Type="String" />
        <asp:FormParameter FormField="txtContactID" Name="contactNo" Type="String" />
    </SelectParameters>
</asp:SqlDataSource>

存储过程如下。注意出于安全原因,我可能更改了上面的一些名称,但下面是原始字段。

ALTER PROCEDURE [dbo].[usp_GetContactIDs] 
    -- Add the parameters for the stored procedure here
    @companyname varchar(255) = NULL, 
    @firstname varchar(255) = NULL,
    @lastname varchar(255) = NULL,
    @phone varchar(10) = NULL,
    @contactid varchar(15) = NULL
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;
    Declare @sql varchar(1000);



    set @sql = 'select ID, companyname,contactfirstname,contactlastname,phonenumber, contactid from oet WHERE ID is not null'

    if(@companyname is not null)
        set @sql = @sql + ' AND companyname = '''+ @companyname + '''';

    if(@firstname is not null)
        set @sql = @sql + ' AND contactfirstname = '''+ @firstname + '''';

    if(@lastname is not null)
        set @sql = @sql + ' AND contactlastname = '''+ @lastname + '''';

    if(@phone is not null)
        set @sql = @sql + ' AND phonenumber = '''+ @phone + '''';

    if(@contactid is not null)
        set @sql = @sql + ' AND contactid = '''+ @contactid + '''';


    exec (@sql)


END

我花了一天多的时间才解决。问题是母版页。当我从页面中删除母版页时,一切正常。发生的情况是 txtFirstName 控件位于页面上,但自从我使用母版页以来从未找到它。结果它每次都传递一个空值。它没有产生任何错误(这是应该的),这使得调试非常棘手。

您还需要查看许多其他属性。重要的是

在 SQL 数据源中,配置数据源、参数部分:选择参数并单击“显示高级选项”、ConvertEmptyStringToNull。您可能需要将其更改为 false。

SQLDatasource -> 属性 -> CancelSelectOnNullParamter = 将其更改为 false

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在SQLDatasource中使用存储过程时,Gridview不显示 的相关文章

  • 基于 Microsoft Word 模板生成 PDF 文档 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要一个 Word 文档 它是某种模板 收集用户输入以填充该模板中的特定字段 然后生成一个 PDF
  • 在 Dapper 中处理 Oracle 数据库连接

    我正在尝试连接到 Oracle 数据库并尝试执行查询 下面是我的模型类 using System using System Collections Generic using System Linq using System Web usi
  • 混合 ASP.NET WebForms 和 MVC 授权

    我正在尝试将一些 MVC3 功能混合到现有的 WebForms 应用程序中 我遵循了一些指南 除了授权部分之外 一切都已设置完毕并正常工作 现有的应用程序有
  • sitecore 站点内嵌套虚拟目录或应用程序是否可能

    我想将 ASP NET Web 应用程序嵌套在 sitecore 站点中 如下所示
  • 将 UserControl 转换为特定类型的用户控件

    有没有办法将用户控件转换为特定的用户控件 以便我可以访问它的公共属性 基本上 我正在遍历占位符的控件集合 并尝试访问用户控件的公共属性 foreach UserControl uc in plhMediaBuys Controls uc P
  • 自定义WebApi授权数据库调用

    我正在尝试确定我编写的自定义授权属性是否确实是一个好主意 Scenario假设我们有一系列商店 每个商店Store有一个主人 只有商店的所有者才能对商店进行CRUD操作 除了具有Claim这基本上超越了所有权要求 并表示他们可以在任何商店上
  • 基于 Web.Config 使用的 GAC 程序集版本

    Good Day 我有一个在 GAC 中使用自定义程序集的项目 为了能够使用它 我在中添加了对我的项目的引用 C WINDOWS Microsoft NET assembly GAC MSIL JOHN CommonLib v4 0 1 0
  • MySQL 错误 1172 - 结果包含多行

    在存储过程中运行查询时 我从 MySQL 收到此错误 错误代码 1172 结果包含多行 我理解错误 我正在做一个SELECT INTO var list 因此查询需要返回单行 当我使用LIMIT 1 or SELECT DISTINCT 错
  • 对 HTTP 处理程序的同时请求不起作用

    我的 ASP Net 应用程序中有一个通用 HTTP 处理程序 ashx 它执行一些基本但耗时的计算 将进度语句打印到输出 以便让用户了解情况 执行这些计算涉及读取一些在使用处理程序时锁定的数据文件 因此对处理程序的两次调用不要立即开始处理
  • 在多个网页(.cshtml 文件)中使用 Razor @functions

    我有以下功能 我希望可用于我的 asp net 网页 2 应用程序中的多个 cshtml 视图 如何使该功能可用于应用程序中的任何视图 而不是仅一个视图 functions public bool DisplayButton String
  • 如何使用 ASP.NET Web 表单从代码隐藏中访问更新面板内的文本框、标签

    我在更新面板中定义了一些控件 它们绑定到中继器控件 我需要根据匿名字段隐藏和显示用户名和国家 地区 但问题是我无法以编程方式访问更新面板中定义的控件 我如何访问这些控件 我也在网上查找但找不到很多参考资料 下面是来自aspx页面和 cs页面
  • 如何在aspx页面中的repeater ItemDataBound函数中传递Control.ClientID?

    我想调用 JavaScript 函数来折叠 展开 我在 asp repeater 中使用此代码ItemTemplate在跨度上 onclick javascript funCollExp this 我该如何通过Control ClientI
  • 在 ASP.Net 网站中使用 VBScript 中的变量

    我花了一天的大部分时间来研究这个问题 但找不到答案 我对 stackoverflow 比较陌生 询问多个问题是否有一定的礼仪 过去几天我问了三个问题 Anyways 这是代码隐藏文件中的代码 它执行脚本 systeminfo vbs 并且工
  • 如何在ASP.NET服务器的web.config文件中使用Azure Pipeline中设置的环境变量?

    我打算在 ASP NET 中使用 Azure Pipeline 中的以下环境变量web config file
  • MYSQL - 使用逗号分隔字符串作为变量输入的存储过程

    我希望有人能够提供帮助 我已经创建了我的第一个存储过程 没什么花哨的 但是我遇到了问题 我想给它一个字符串输入 例如 1 2 3 4 5 然后它执行一个简单的操作SELECT FROM TABLE WHERE EAN IN VAR 所以存储
  • 如何在 MVC3 Razor 视图中呈现数据表

    我在 xls 电子表格 1 之间有一个可靠且经过测试的导入方法 该方法返回DataTable 我已将其定位在我的服务层中 而不是数据中 因为只有工作簿作为上传文件保存 但现在我想知道在哪里以及如何生成此内容的 HTML 表示形式DataTa
  • 循环预定义值

    有没有办法在 oracle 中执行 for every 如下所示 begin for VAR in 1 2 5 loop dbms output put line The value VAR end loop end 我知道你可以这样做 b
  • C# 中的合并运算符?

    我想我记得看到过类似的东西 三元运算符 http msdn microsoft com en us library ty67wk28 28VS 80 29 aspx在 C 中 它只有两部分 如果变量值不为空 则返回变量值 如果为空 则返回默
  • 导致回发到与弹出窗口不同的页面

    我有一个主页和一个详细信息页面 详细信息页面是从主页调用的 JavaScript 弹出窗口 当单击详细信息页面上的 保存 按钮时 我希望主页 刷新 是否有一种方法可以调用主页的回发 同时还可以从详细信息页面维护保存回发 Edit 使用win
  • SQL 更新 - 更新选定的行

    我正在使用 SQL Server 2008 我有一个名为MYTABLE有两列 ID STATUS 我想编写一个存储过程来返回其记录STATUS是 0 但是这个存储过程必须更新STATUS返回行数为 1 如何在单个查询中执行此选择和更新操作

随机推荐

  • 从 Azure 密钥保管库存储和检索 JKS

    我想引用 Azure Key Vault 中的 Java 密钥存储 而不是将其与作为 docker 映像部署到 Kubernetes 集群中的 Spring Boot 应用程序打包在一起 根据 Azure 文档 仅允许将 PFX 文件导入到
  • 停止引导程序轮播在幻灯片末尾循环

    我想要这样 当我按下轮播上的下一个按钮时 如果它已到达幻灯片的末尾 则不要绕回并返回到第一张幻灯片 Bootstrap 3 有没有简单的方法可以做到这一点 设置wrap选项为 false 会使轮播自动停止循环 myCarousel caro
  • 如何使用复选框来过滤 Angular 的结果?

    我正在尝试使用复选框应用过滤器 复选框正确显示 div div
  • 如何在运行时向 TypeDescriptor 添加属性级 Attribute?

    我想向对象的属性添加一些自定义的以 PropertyGrid 为中心的属性 以提供更丰富的编辑 隐藏一些值并将它们分组到类别中 因为我正在使用的那个类不提供此类功能 我无能为力关于它 实际上 它是为 MS 的应用程序设置生成代码的 因此您无
  • 使用 R 进行语言相关排序

    1 如何正确排序 任务是根据英文字母对美国州名缩写进行排序 但我注意到 R 根据某种操作系统语言或区域设置对列表进行排序 例如 在我的语言 立陶宛语 中 甚至拉丁语 非立陶宛语 字母的顺序也与英语字母表中的顺序不同 仅比较两个字母表中的非立
  • 如何延迟加载与 p:Tab 中包含的页面关联的 ManagedBean,仅当 Tab 打开时

    我有一个p tabView or p accordionPanel和 Facelets 包含在每个p tab using ui include 我的问题是与每个包含的页面关联的 ManagedBeans 在启动时初始化 我怎样才能使它们仅在
  • 用javascript检查瑞典语字符?

    如何重写此代码以检查所有字符 包括瑞典语 和 字符 alphaExp a zA Z 以上仅检查英文字母 瑞典语在 Z 之后包含 其余部分与英语相同 Thanks 你试过了吗 a zA Z 在我的火狐浏览器中 a zA Z test 评估为真
  • 在 JellyBean 上使用 LogCat

    我有一个非常随机发生的错误 所以我依赖LogCat我从 Play 商店购买的监控应用程序 以查看发生时设备上抛出的异常 自从使用 Jelly Bean 以来 我没有看到任何日志记录 我读过 使用 Jelly Bean 应用程序只能看到Log
  • 核心蓝牙和后台:检测设备并触发操作,即使在后台模式几天后?

    我编写了一个应用程序 需要在某个低功耗蓝牙设备进入范围内时收到通知 如果 BLE 设备被注意到 我的应用程序只会存储一个时间戳 正如 WWDC 2012 核心蓝牙视频中所述 使用核心蓝牙时 应用程序有两种在后台模式下运行的可能性 活动背景
  • spring oauth2授权代码流程,VK(Vkontakte)的配置

    我使用社交网络 Vkontakte 作为 Oauth2 授权服务器 所以我有几个步骤 1 通过请求获取代码请求类型 代码2 当我发送请求访问令牌uri时获取accessToken 所以我想使用 Spring Oauth2 但我应该首先获取授
  • 如何从 Angular 计时器获取当前时间

    我正在测试角度计时器 http siddii github io angular timer 并且发现自己想知道如何在控制器中获取当前时间 以便将其用于我可能有的任何目的 例如 我想当达到特定的分钟数时 将计时器的字体颜色设置为红色 但我完
  • 生成Mst响应工具

    我正在尝试使用 C 创建一个工具来获取通过单击 msi Windows 安装程序 的对话框生成的属性 我可以通过在 msi 关闭之前读取 property 表来获取最终的 msi 属性 但这包含相当多的不需要的属性 例如目录等 我希望能够做
  • 是否应该使用箭头函数创建类方法

    在创建 React 组件时 我有时会在网络上使用箭头函数语法创建方法 有时则不使用箭头函数语法 例如 class Component extends someFnk param gt vs class Component extends s
  • MySQL ifnull 相当于 php

    我的场景 exTime get cfg var session gc maxlifetime get cfg var session gc maxlifetime 1440 我希望它像 mysql 一样 exTime isnull get
  • IDEA 11.1.4 中的 Glassfish 3.1.2.2:“PWC6345:调用 javac 时出错。需要完整的 JDK(不仅仅是 JRE)”

    我正在尝试在新安装的 IDEA 11 1 4 Ultimate Windows 7 和新解压的 Glassfish 3 1 2 2 下启动并运行我们的 Mavenized Web 应用程序 我在 Eclipse 中做过很多次 但对 IDEA
  • Flutter ListView 未更新

    我想在 Flutter 中创建一个 ListView 当新数据到达时它会更新 我正在使用 RefreshIndicator 来触发列表加载以进行测试 对于我的列表 我使用 ListBuilder 将对象映射到视图对象 据我了解 setSta
  • 如何添加从 Outlook 到 Web 表单的拖放上传功能?

    我正在寻找一种方法 允许用户以简单的方式将 Outlook 电子邮件上传到基于 Web 的系统 我可以让它以手动方式为用户工作 他们可以将电子邮件从 Outlook 拖放到桌面上 这会创建一个 msg 文件 这非常有效 尤其是 电子邮件中是
  • aerospike:删除集合中的所有记录

    我正在使用 Aerospike 进行测试 我使用的是社区版 集群有2个节点 我使用存储引擎作为带有 SSD 的设备 我的配置文件 namespace test replication factor 2 memory size 16G def
  • PowerShell Get-VHD“不是现有的虚拟硬盘文件”

    在 Hyper V 中创建新 VM 时 为了使事情井井有条 我在创建关联的 VHDX 文件时使用特定的命名约定 命名约定是 VM FQDN 后跟 SCSI 控制器连接点 后跟 VM 内部的驱动器名称或使用名称 我将 SCSI 和 Name
  • 在SQLDatasource中使用存储过程时,Gridview不显示

    我以前偶然发现过这个问题 我知道这是一个常见问题 一个相关的问题是网格视图为空 https stackoverflow com q 5596451 777982 但这并不能解决我的问题 理想情况下 我想要的是当我单击 查找 按钮时根据文本框