Gridview的UPDATE不喜欢我参数中的空格

时间:2015-12-02 15:22:30

标签: asp.net gridview webforms

不幸的是,我正在处理的数据库在列名中有一个空格。我在GridView中有一个DropDownList,我正在尝试用DropDownList中用户选择的任何内容更新列。这是我如何使用DropDownList:

<asp:TemplateField HeaderText="Phase (edit)" SortExpression="EditedPhase">
    <EditItemTemplate>
        <asp:DropDownList ID="PhaseDropDownList" runat="server" DataSourceID="PhaseDropDown" DataTextField="Current Project Phase" DataValueField="Current Project Phase" SelectedValue='<%# Bind("Phase") %>'>
        </asp:DropDownList>
    </EditItemTemplate>
<asp:TemplateField>

以下是数据来源:

<asp:SqlDataSource ID="PhaseDropDown" runat="server" ConnectionString="<%$ ConnectionStrings:ODSConnectionString %>" SelectCommand="select distinct [Current Project Phase] from [Phase_Table]">
</asp:SqlDataSource>

以下是我的更新命令和参数:

UpdateCommand="UPDATE [Pipeline] SET EditedPhase = @[Current Project Phase]"

<UpdateParameters>
    <asp:Parameter Name="[Current Project Phase]" Type="String"/>
</UpdateParameters>

经过一些研究后,我发现参数中没有空格,但大多数解决方案都使用了后面的代码。我没有代码,因为引入代码可能会破坏它(需要处理页面加载等)。如何解决当前的问题?

如果有拼写错误,抱歉。

1 个答案:

答案 0 :(得分:0)

是的,不要在参数名称中使用空格;传递给参数的值虽然可以有空格,所以我不确定这是否是一个混乱点。例如,更新您的SQL查询,如:

UpdateCommand="UPDATE [Pipeline] SET EditedPhase = @CurrentProjectPhase">
<UpdateParameters>
    <asp:Parameter Name="CurrentProjectPhase" Type="String" DefaultValue="Current Project Phase"/>
</UpdateParameters>

这里的值(DefaultValue是在没有提供值时提供给更新的默认值)可以有空格。但名字不能。您可以在代码中设置参数的DefaultValue,或使用功能更强大的参数(如会话,控制参数)从某些内容中获取值...