You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

ASP GridView绑定含空格SQL字段报错:数据源找不到对应字段

问题解决:ASP GridView绑定带空格字段时找不到数据源字段

嘿,这个问题我之前踩过坑!核心原因特别简单:你的BoundField的DataField属性多了不必要的方括号

问题分析

虽然在SQL查询语句里,我们必须用[Field With Space]这种带方括号的格式来引用带空格的字段(避免SQL Server把空格当成语法分隔符),但当SqlDataReader读取查询结果时,它返回的字段名称是不带方括号的原始名称——也就是Field With Space,而不是[Field With Space]。你在GridView的BoundField里写了带方括号的名称,自然会找不到对应的字段,触发报错。

修改后的代码

只需要把HTML里BoundField的DataField属性的方括号去掉即可,C#代码完全不需要改动:

<div id="dgv"> 
    <asp:GridView ID="GridView1" runat="server" CssClass="Grid" AutoGenerateColumns="false"> 
        <Columns> 
            <asp:BoundField DataField="Field With Space" HeaderText="SQL Field With Spaces" /> 
        </Columns> 
    </asp:GridView>
</div>

额外验证小技巧

如果以后再遇到类似字段匹配问题,你可以在代码里加一段小逻辑,打印出DataReader返回的所有字段名,直观确认数据源的字段格式:

for (int i = 0; i < dr.FieldCount; i++)
{
    System.Diagnostics.Debug.WriteLine(dr.GetName(i)); // 会输出"Field With Space",不带方括号
}

这样就能快速定位字段名称不匹配的问题啦!

内容的提问来源于stack exchange,提问作者Smith Stanley

火山引擎 最新活动