0

我有一个问题,我在过去 24 小时内一直在努力解决,所以为了避免我发疯,我想我会请人帮忙解决我的问题!

我正在使用 Visual Web Developer,在此我有一个 asp Gridview 元素,它从我的 AccessDataSource 中选择信息。(我可能会添加完美的作品。)

当我尝试更新 Gridview 中的信息时出现错误。我的更新 SQL 在 Access 中运行良好,但在 VWD 中它不会引发错误消息,但无法将新数据保存到数据库中。我已经在 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

stackoverflow 上的这个链接也有类似的情况。我不确定环境,但它可能不是 Visual Web Developer 问题。无论哪种方式都是链接:

AccessDatasource 的更新什么都不做,但没有错误

看起来这个问题没有得到解决,但那里有一些提示可能会有所帮助。

-狡猾的

(我也遇到了同样的问题,所以如果你最终有一个好的解决方案,请发布它!!谢谢!)

于 2012-04-19T23:12:06.947 回答
0

对于其他有同样问题的人:

我必须将我已经存在的 VB 代码包装在“If Not Page.IsPostBack”中。认为这是通过重新加载页面和在执行更新命令之前干扰更新。

于 2012-04-23T14:26:46.027 回答