0

こんにちは、グリッドビューにバインドされたフォームビューを持つプロジェクトを作成しました。フォームビューを更新しようとすると、タイトルにエラーが表示される場合を除いて、他のすべてのコマンドは正常に動作するようです。これが私のコードです。

    <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>

ここからどこへ行けばいいのかわからない

4

3 に答える 3

3

これがこのリファレンスからの抜粋です:

SqlDataSourceオブジェクトをチェックして、プルしたフィールド、またはスペースを使用して名前を変更したフィールドを確認します。'_'アンダースコアは正常に機能しますが、「Select [somename] as [Some Name] FROM [names] WHERE [id] = @ id」のようなクエリを実行すると、上記のエラーが発生します。

すべてのスペースをアンダースコアに置き換えてみてください(例:Job_Title)

于 2012-08-03T20:06:44.673 に答える
2

Bind ステートメントのフィールド名を囲む角括弧を削除します。

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

角かっこは、フィールド名にスペースを含めることができるようにするために、UpdateCommand のクエリ部分でのみ必要です。かっこは、ページの構築時に ASP.NET が生成するバックグラウンド コードで、あらゆる種類の奇妙な混乱を引き起こす可能性があります。それが役立つことを願っています。

于 2012-08-03T20:12:05.890 に答える
0

テーブル内のフィールドのすべての名前を 1 つの単語、または下線で区切られた単語 (例: first_name) に変更し、更新コードを新しい名前を使用するように変更して、プロジェクトでこのエラーを修正しました。

于 2014-08-22T19:46:15.887 に答える