'nvarchar'附近的语法不正确必须在@num附近声明标量变量

时间:2022-03-27 01:08:17

Hi all I created a project that has a Formview bound to a Gridview. All the other commands seem to work fine except when I try to update the form view I get the error in the title. Here is my code.

大家好我创建了一个项目,它有一个绑定到Gridview的Formview。所有其他命令似乎工作正常,除非我尝试更新窗体视图,我得到标题中的错误。这是我的代码。

    <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" />
         &nbsp;<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>

I am not sure where to go from here

我不知道从哪里开始

3 个解决方案

#1


3  

Here's an excerpt from this reference:

以下是此参考的摘录:

Check the SqlDataSource object for any fields you’ve pulled or renamed with spaces in them. An ‘_’ Underscore will work fine, but doing a query like this "Select [somename] as [Some Name] FROM [names] WHERE [id]=@id" will result in the above error

检查SqlDataSource对象中是否已提取或重命名的任何字段,其中包含空格。 '_'Underscore可以正常工作,但是执行这样的查询“选择[somename]作为[Some Name] FROM [names] WHERE [id] = @ id”将导致上述错误

Try replacing all the spaces with underscores (e.g. Job_Title)

尝试用下划线替换所有空格(例如Job_Title)

#2


2  

Remove the square brackets around the field names in your Bind statements, eg

删除Bind语句中字段名称周围的方括号,例如

     <asp:TextBox ID="Job_TitleTextBox" runat="server" 
         Text='<%# Bind("Job Title") %>' />

The brackets are really necessary only in the query portion of the UpdateCommand to allow for the presence of spaces in the field names. The brackets can cause all kinds of strange confusion in the background code ASP.NET generates when building the page. Hope that helps.

只有在UpdateCommand的查询部分才允许使用括号,以允许字段名称中存在空格。括号可能会在构建页面时ASP.NET生成的后台代码中引起各种奇怪的混淆。希望有所帮助。

#3


0  

I fixed this error in my project by changing all the names of the fields in my table to one word, or words separated by underlines (e.g. first_name), then changing the update code to use the new names.

我通过将表中字段的所有名称更改为一个单词或由下划线分隔的单词(例如first_name),然后更改更新代码以使用新名称,在项目中修复了此错误。

#1


3  

Here's an excerpt from this reference:

以下是此参考的摘录:

Check the SqlDataSource object for any fields you’ve pulled or renamed with spaces in them. An ‘_’ Underscore will work fine, but doing a query like this "Select [somename] as [Some Name] FROM [names] WHERE [id]=@id" will result in the above error

检查SqlDataSource对象中是否已提取或重命名的任何字段,其中包含空格。 '_'Underscore可以正常工作,但是执行这样的查询“选择[somename]作为[Some Name] FROM [names] WHERE [id] = @ id”将导致上述错误

Try replacing all the spaces with underscores (e.g. Job_Title)

尝试用下划线替换所有空格(例如Job_Title)

#2


2  

Remove the square brackets around the field names in your Bind statements, eg

删除Bind语句中字段名称周围的方括号,例如

     <asp:TextBox ID="Job_TitleTextBox" runat="server" 
         Text='<%# Bind("Job Title") %>' />

The brackets are really necessary only in the query portion of the UpdateCommand to allow for the presence of spaces in the field names. The brackets can cause all kinds of strange confusion in the background code ASP.NET generates when building the page. Hope that helps.

只有在UpdateCommand的查询部分才允许使用括号,以允许字段名称中存在空格。括号可能会在构建页面时ASP.NET生成的后台代码中引起各种奇怪的混淆。希望有所帮助。

#3


0  

I fixed this error in my project by changing all the names of the fields in my table to one word, or words separated by underlines (e.g. first_name), then changing the update code to use the new names.

我通过将表中字段的所有名称更改为一个单词或由下划线分隔的单词(例如first_name),然后更改更新代码以使用新名称,在项目中修复了此错误。