8 messaggi dal 25 gennaio 2006
Ciao a tutti: ho il seguente form, purtroppo, quando eseguo e richiedo la insert di un nuovo record, questo viene memorizzato duplicato nel database a ogni refresh del browser. Mi dite come evitare questa duplicazione? Grazie!

<form id="form1" runat="server">
<div>

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="Seq" DataSourceID="AccessDataSource1">
<Columns>
<asp:CommandField ShowSelectButton="True" />
<asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" />
<asp:BoundField DataField="Seq" HeaderText="Seq" InsertVisible="False"
ReadOnly="True" SortExpression="Seq" />
<asp:BoundField DataField="C1" HeaderText="C1" SortExpression="C1" />
<asp:BoundField DataField="C2" HeaderText="C2" SortExpression="C2" />
<asp:BoundField DataField="C3" HeaderText="C3" SortExpression="C3" />
</Columns>
</asp:GridView>
<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/CSV.mdb"
OldValuesParameterFormatString="original_{0}"
SelectCommand="SELECT * FROM [sec] WHERE ([ID] = ?)">
<SelectParameters>
<asp:QueryStringParameter Name="ID" QueryStringField="id" Type="Int32" />
</SelectParameters>
</asp:AccessDataSource>
<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False"
DataKeyNames="Seq" DataSourceID="AccessDataSource2" Height="50px" Width="125px">
<Fields>
<asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" />
<asp:BoundField DataField="Seq" HeaderText="Seq" InsertVisible="False"
ReadOnly="True" SortExpression="Seq" />
<asp:BoundField DataField="C1" HeaderText="C1" SortExpression="C1" />
<asp:BoundField DataField="C2" HeaderText="C2" SortExpression="C2" />
<asp:BoundField DataField="C3" HeaderText="C3" SortExpression="C3" />
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True"
ShowInsertButton="True" />
</Fields>
</asp:DetailsView>
<asp:AccessDataSource ID="AccessDataSource2" runat="server"
ConflictDetection="CompareAllValues" DataFile="~/App_Data/CSV.mdb "
DeleteCommand="DELETE FROM [sec] WHERE [Seq] = ? AND [ID] = ? AND [C1] = ? AND [C2] = ? AND [C3] = ?"
InsertCommand="INSERT INTO [sec] ([ID], [C1], [C2], [C3]) VALUES (?, ?, ?, ?)"
OldValuesParameterFormatString="original_{0}"
SelectCommand="SELECT * FROM [sec] WHERE (([ID] = ?) AND ([Seq] = ?))"
UpdateCommand="UPDATE [sec] SET [ID] = ?, [C1] = ?, [C2] = ?, [C3] = ? WHERE [Seq] = ? AND [ID] = ? AND [C1] = ? AND [C2] = ? AND [C3] = ?">
<SelectParameters>
<asp:QueryStringParameter Name="ID" QueryStringField="ID" Type="Int32" />
<asp:ControlParameter ControlID="GridView1" Name="Seq"
PropertyName="SelectedValue" Type="Int32" />
</SelectParameters>
<DeleteParameters>
<asp:Parameter Name="original_Seq" Type="Int32" />
<asp:Parameter Name="original_ID" Type="Int32" />
<asp:Parameter Name="original_C1" Type="String" />
<asp:Parameter Name="original_C2" Type="String" />
<asp:Parameter Name="original_C3" Type="String" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="ID" Type="Int32" />
<asp:Parameter Name="C1" Type="String" />
<asp:Parameter Name="C2" Type="String" />
<asp:Parameter Name="C3" Type="String" />
<asp:Parameter Name="original_Seq" Type="Int32" />
<asp:Parameter Name="original_ID" Type="Int32" />
<asp:Parameter Name="original_C1" Type="String" />
<asp:Parameter Name="original_C2" Type="String" />
<asp:Parameter Name="original_C3" Type="String" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="ID" Type="Int32" />
<asp:Parameter Name="C1" Type="String" />
<asp:Parameter Name="C2" Type="String" />
<asp:Parameter Name="C3" Type="String" />
</InsertParameters>
</asp:AccessDataSource>

</div>
</form>
377 messaggi dal 10 settembre 2001
Contributi
se per te non è un problema mi invio il db a questo indirizzo:

ridaria@katamail.com

così faccio una verifica diretta.

Riccardo

dopo la laurea dissi: ho finito gli esami, qualcuno mi rispose: Gli esami non finiscono mai ....
33 messaggi dal 15 gennaio 2007
anche io avevo lo stesso problema e ho risolto in questo modo:

1 - sull'evento Prerender della pagina:
Sub Page_PreRender(ByVal sender As Object, ByVal e As EventArgs) Handles Me.PreRender
' Impostazione della variabile per il check sul refresh della pagina
ViewState("update") = Session("update")
End Sub

2 - sull'evento load:
If Not Page.IsPostBack Then
Me.LstTipoObj.DataBind()
Session("update") = Server.UrlEncode(System.DateTime.Now.ToString())
End If

3 - ogni volta che fai un'operazione:

' Se non è un refesh della pagina
If Session("update").ToString = ViewState("update").ToString Then
' fai l'operazione
end if

spero di esserti stato d'aiuto...

Ciao!!!!
8 messaggi dal 25 gennaio 2006
sgabbu73 ha scritto:
anche io avevo lo stesso problema e ho risolto in questo modo:

1 - sull'evento Prerender della pagina:
Sub Page_PreRender(ByVal sender As Object, ByVal e As EventArgs) Handles Me.PreRender
' Impostazione della variabile per il check sul refresh della pagina
ViewState("update") = Session("update")
End Sub

2 - sull'evento load:
If Not Page.IsPostBack Then
Me.LstTipoObj.DataBind()
Session("update") = Server.UrlEncode(System.DateTime.Now.ToString())
End If

3 - ogni volta che fai un'operazione:

' Se non è un refesh della pagina
If Session("update").ToString = ViewState("update").ToString Then
' fai l'operazione
end if

spero di esserti stato d'aiuto...

Ciao!!!!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.