0

この 24 時間ずっと取り組んできた問題があるので、気が狂ってしまうのを避けるために、誰かに助けを求めようと思いました。

私は Visual Web Developer を使用しています。これには、AccessDataSource から情報を選択する asp Gridview 要素があります。(追加するかもしれませんが、完全に正常に動作します。)

Gridview の情報を更新しようとすると、エラーが発生します。更新 SQL は Access では問題なく動作しますが、VWD ではエラー メッセージは表示されず、新しいデータをデータベースに保存できません。update コマンドの asp にパラメーターを設定し、「DataKeyNames」も設定しました。

誰でもこれで私を助けることができますか? 私はこれに比較的慣れていないので、どこが間違っているのかわかりません。かなり長い間オンラインで広範囲に検索を行ってきましたが、まだよくわからないので、次の最善の策はここで質問することだと思いました.

よろしくお願いします。:)

私の ASP.net コード:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
DataSourceID="AccessDataSource1" DataKeyNames="MemberID" 
style="z-index: 1; left: 0px; top: 147px; position: absolute; height: 133px;     
width:499px">
<Columns>
<asp:CommandField ShowEditButton="True" />
<asp:BoundField DataField="RaceID" HeaderText="RaceID" SortExpression="RaceID" />
<asp:BoundField DataField="MemberID" HeaderText="MemberID" SortExpression="MemberID" />
<asp:BoundField DataField="MemberName" HeaderText="MemberName"   
SortExpression="MemberName" />
<asp:BoundField DataField="PersonalTime" HeaderText="PersonalTime" 
SortExpression="PersonalTime" />
<asp:BoundField DataField="FinishPosition" HeaderText="FinishPosition" 
SortExpression="FinishPosition" />
<asp:BoundField DataField="Points" HeaderText="Points" 
SortExpression="Points" />
</Columns>
</asp:GridView>

<asp:AccessDataSource ID="AccessDataSource1" runat="server"     
DataFile="~/App_Data/myDatabase.mdb" 

SelectCommand="SELECT tblResult.RaceID, tblResult.MemberID, tblMember.MemberName, 
tblResult.PersonalTime, tblResult.FinishPosition, tblPoint.Points FROM ((tblRaceType  
INNER JOIN (tblRace INNER JOIN (tblMember INNER JOIN tblResult ON tblMember.MemberID = 
tblResult.MemberID) ON tblRace.RaceID = tblResult.RaceID) ON tblRaceType.RaceTypeID = 
tblRace.RaceTypeID) INNER JOIN tblPoint ON tblResult.FinishPosition = tblPoint.
[Position] AND tblRaceType.RaceTypeID = tblPoint.RaceTypeID) WHERE (tblResult.RaceID =    
?) AND (tblPoint.RaceTypeID = ?) ORDER BY tblResult.FinishPosition" 

UpdateCommand="UPDATE [tblResult] SET PersonalTime = ?, FinishPosition = ? WHERE  
MemberID = ? AND RaceID = ?">

<SelectParameters>
<asp:SessionParameter DefaultValue="0" Name="?" SessionField="raceID" />
<asp:SessionParameter DefaultValue="0" Name="?" SessionField="raceTypeID" />
</SelectParameters>

<UpdateParameters>
<asp:Parameter Name="PersonalTime" Type="String"/>
<asp:Parameter Name="FinishPosition" Type="Int64" />
<asp:Parameter Name="MemberID" Type="Int64" />
<asp:Parameter Name="RaceID" Type="Int64" />
</UpdateParameters>
</asp:AccessDataSource>
4

2 に答える 2

0

同じ問題を抱えている他の人のために:

既存のVBコードを「IfNotPage.IsPostBack」でラップする必要がありました。ページを再ロードし、Updateコマンドを実行する前に、これがUpdateの妨げになっていると考えてください。

于 2012-04-23T14:26:46.027 に答える
0

stackoverflow のこのリンクにも同様の状況があります。環境についてはわかりませんが、Visual Web Developer の問題ではない可能性があります。いずれにしても、リンクは次のとおりです。

AccessDatasource の更新は何もしませんが、エラーはありません

その問題は解決されたようには見えませんでしたが、役立つヒントがいくつかありました。

-ドディ

(私も同じ問題を抱えているので、良い解決策が見つかったら投稿してください!!ありがとう!)

于 2012-04-19T23:12:06.947 に答える