1

だから私は一日中この問題にドキドキしています。モデルを指すLinqDataSourceと、それを使用するGridViewがあります。GridViewで更新を行おうとすると、基になるデータソースが更新されません。LinqDataSourceに関係しているのではないかと思ったので、SqlDataSourceを追加すると、同じことが起こります。aspxは次のとおりです(分離コードページは空です):

  <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
      ConnectionString="Data Source=devsql32;Initial Catalog=Steam;Persist Security Info=True;" 
      ProviderName="System.Data.SqlClient" 
      SelectCommand="SELECT [LangID], [Code], [Name] FROM [Languages]" UpdateCommand="UPDATE [Languages] SET [Code]=@Code WHERE [LangID]=@LangId">
  </asp:SqlDataSource>
  <asp:GridView ID="_languageGridView" runat="server" AllowPaging="True" 
      AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="LangId" 
      DataSourceID="SqlDataSource1">
      <Columns>
          <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
          <asp:BoundField DataField="LangId" HeaderText="Id" ReadOnly="True" />
          <asp:BoundField DataField="Code" HeaderText="Code" />
          <asp:BoundField DataField="Name" HeaderText="Name" />
      </Columns>
  </asp:GridView>
  <asp:LinqDataSource ID="_languageDataSource" ContextTypeName="GeneseeSurvey.SteamDatabaseDataContext" runat="server" TableName="Languages" EnableInsert="True" EnableUpdate="true" EnableDelete="true">
 </asp:LinqDataSource>

私はここで何が欠けていますか?この問題は私を狂わせています。

4

3 に答える 3

2

DataSources の <UpdateParameters> セクションがありません。

LinqDataSource.UpdateParameters

SqlDataSource.UpdateParameters

于 2008-09-09T19:10:57.550 に答える
1

aspx ファイルのマスター ページの Page_Load に DataBind() 呼び出しがあったことが判明しました。これが、ページの読み込みごとに GridView の状態が破棄される原因になっている可能性があります。

注 - LINQ クエリの更新パラメーターは、NULL 以外の既定値を設定する場合を除き、必要ありません。

于 2008-09-09T20:41:02.047 に答える
0

ASPをまったく使用していないので、これは暗闇の中でのトータルショットです。

XAMLとWPFを学習したばかりですが、これは上記の投稿と非常によく似ているようです。一部のUIコントロールでは、双方向の更新を取得するために、バインドモードを双方向に指定する必要があることを知っています。 。

于 2008-09-09T19:09:12.097 に答える