大家好我创建了一个将Formview绑定到Gridview的项目。所有其他命令似乎工作正常,除非我尝试更新窗体视图,我得到标题中的错误。这是我的代码。
<EditItemTemplate>
num:
<asp:TextBox ID="TextBox1" runat="server"
Text='<%# Bind("[num]") %>' />
<br />
Job Title:
<asp:TextBox ID="Job_TitleTextBox" runat="server"
Text='<%# Bind("[Job Title]") %>' />
<br />
Status:
<asp:TextBox ID="StatusTextBox" runat="server" Text='<%# Bind("Status") %>' />
<br />
Department:
<asp:TextBox ID="DepartmentTextBox" runat="server"
Text='<%# Bind("Department") %>' />
<br />
Date Position Available:
<asp:TextBox ID="Date_Position_AvailableTextBox" runat="server"
Text='<%# Bind("[Date Position Available]") %>' />
<br />
Position Type:
<asp:TextBox ID="Position_TypeTextBox" runat="server"
Text='<%# Bind("[Position Type]") %>' />
<br />
Job Duties:
<asp:TextBox ID="Job_DutiesTextBox" runat="server"
Text='<%# Bind("[Job Duties]") %>' />
<br />
Qualifications:
<asp:TextBox ID="QualificationsTextBox" runat="server"
Text='<%# Bind("Qualifications") %>' />
<br />
Physical Demands:
<asp:TextBox ID="Physical_DemandsTextBox" runat="server"
Text='<%# Bind("[Physical Demands]") %>' />
<br />
Closing Date:
<asp:TextBox ID="Closing_DateTextBox" runat="server"
Text='<%# Bind("[Closing Date]") %>' />
<br />
Hours Per Pay Period:
<asp:TextBox ID="Hours_Per_Pay_PeriodTextBox" runat="server"
Text='<%# Bind("[Hours Per Pay Period]") %>' />
<br />
<asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True"
CommandName="Update" Text="Update" />
<asp:LinkButton ID="UpdateCancelButton" runat="server"
CausesValidation="False" CommandName="Cancel" Text="Cancel" />
</EditItemTemplate>
UpdateCommand="UPDATE [career_posting] SET [Job Title] = @Job_Title, [Status] = @Status, [Department] = @Department, [Date Position Available] = @Date_Position_Available, [Position Type] = @Position_Type, [Job Duties] = @Job_Duties, [Qualifications] = @Qualifications, [Physical Demands] = @Physical_Demands, [Closing Date] = @Closing_Date, [Hours Per Pay Period] = @Hours_Per_Pay_Period WHERE [num] = @num">
<UpdateParameters>
<asp:Parameter Name="Job_Title" Type="String" />
<asp:Parameter Name="Status" Type="String" />
<asp:Parameter Name="Department" Type="String" />
<asp:Parameter Name="Date_Position_Available" Type="String" />
<asp:Parameter Name="Position_Type" Type="String" />
<asp:Parameter Name="Job_Duties" Type="String" />
<asp:Parameter Name="Qualifications" Type="String" />
<asp:Parameter Name="Physical_Demands" Type="String" />
<asp:Parameter Name="Closing_Date" Type="String" />
<asp:Parameter Name="Hours_Per_Pay_Period" Type="String" />
<asp:Parameter Name="num" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>
我不知道从哪里开始
答案 0 :(得分:3)
以下摘自this reference:
检查SqlDataSource对象是否已提取或重命名的任何字段 里面有空格。一个'_'下划线会工作正常,但做一个 查询如下“选择[somename]作为[Some Name] FROM [names] WHERE [id] = @ id“将导致上述错误
尝试用下划线替换所有空格(例如Job_Title)
答案 1 :(得分:2)
删除Bind语句中字段名称周围的方括号,例如
<asp:TextBox ID="Job_TitleTextBox" runat="server"
Text='<%# Bind("Job Title") %>' />
仅在UpdateCommand的查询部分中必须使用括号,以允许字段名称中存在空格。括号可能会在构建页面时ASP.NET生成的后台代码中引起各种奇怪的混淆。希望有所帮助。
答案 2 :(得分:0)
我通过将表格中所有字段的名称更改为一个单词,或者用下划线分隔的单词(例如first_name),然后更改更新代码以使用新名称,在项目中修复了此错误。