Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Gridview';s UPDATE不喜欢my参数中的空格_Asp.net_Gridview_Webforms - Fatal编程技术网

Asp.net Gridview';s UPDATE不喜欢my参数中的空格

Asp.net Gridview';s UPDATE不喜欢my参数中的空格,asp.net,gridview,webforms,Asp.net,Gridview,Webforms,不幸的是,我正在处理的数据库在列名中有一个空格。我在GridView中有一个DropDownList,我试图用用户在DropDownList中选择的任何内容更新列。以下是我如何获得下拉列表: <asp:TemplateField HeaderText="Phase (edit)" SortExpression="EditedPhase"> <EditItemTemplate> <asp:DropDownList ID="PhaseDropDo

不幸的是,我正在处理的数据库在列名中有一个空格。我在GridView中有一个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>

下面是我如何使用update命令和参数:

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

<UpdateParameters>
    <asp:Parameter Name="[Current Project Phase]" Type="String"/>
</UpdateParameters>
UpdateCommand=“更新[Pipeline]设置EditedPhase=@[当前项目阶段]”
在做了一点研究之后,我发现参数中不能有空格,但大多数解决方案都使用了隐藏的代码。我没有代码隐藏,因为引入代码隐藏可能会破坏它(需要处理页面加载等)。如何解决当前问题


如果有打字错误,对不起

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

UpdateCommand="UPDATE [Pipeline] SET EditedPhase = @CurrentProjectPhase">
<UpdateParameters>
    <asp:Parameter Name="CurrentProjectPhase" Type="String" DefaultValue="Current Project Phase"/>
</UpdateParameters>
UpdateCommand=“更新[管道]设置EditedPhase=@CurrentProjectPhase”>

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

我采用了不同的方法。我决定用化名,无论如何谢谢。