Bonjour,
j'utilise vs 2008, sql server 2005.
J'essaie de faire une mise a jour dans mon detailsview. Mais ca me donne toutjours une erreur du style : La référence d'objet n'est pas définie à une instance d'un objet. sur mes champs que je voudrais ajouter .par ex (cmdupdate.Parameters.AddWithValue("@last_name", last_name.Text))
J'ai deja des données ds mon dv et je voudrais pouvoir les modifier et les enregistrer dans la base de données.
En plus qd je clique sur modifier le detailview disparait. Il faut que je reclique sur la meme ligne (de mon gridview) pour avoir le detailviwe en mode edit.
Merci bcp de m'aider s'il vous plait
Voici mon code.
le code behind
la page aspx
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 Protected Sub DetailsView1_ModeChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewModeEventArgs) Handles DetailsView1.ModeChanging 'Set The New Mode If (DetailsView1.CurrentMode = DetailsViewMode.ReadOnly) Then DetailsView1.ChangeMode(DetailsViewMode.Edit) DetailsView1.DataBind() ElseIf (DetailsView1.CurrentMode = DetailsViewMode.Edit) Then DetailsView1.ChangeMode(DetailsViewMode.ReadOnly) DetailsView1.DataBind() ElseIf (DetailsView1.CurrentMode = DetailsViewMode.Insert) Then DetailsView1.ChangeMode(DetailsViewMode.ReadOnly) DetailsView1.DataBind() End If 'Bind The Data Again (If we dont bind the data here the detailview control behaves weird, Remove to see what i mean) 'BindAddress() End Sub Protected Sub DetailsView1_ItemUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewUpdateEventArgs) Handles DetailsView1.ItemUpdating 'Update the new information ID = Request.QueryString("contact_uuid") Dim last_name As TextBox = DetailsView1.FindControl("last_name") Dim first_name As TextBox = DetailsView1.FindControl("first_name") Dim pri_phone_number As TextBox = DetailsView1.FindControl("pri_phone_number") Dim email_address As TextBox = DetailsView1.FindControl("email_address") Dim contact_uuid As TextBox = DetailsView1.FindControl("contact_uuid") ' on prépare la connexion Dim connectionString As String = "...." Dim con As New SqlConnection(connectionString) Dim requete As String = "UPDATE ca_contact SET last_name= ?,first_name= ?,pri_phone_number= ?,email_address= ? WHERE contact_uuid= ?" Dim cmdupdate As SqlCommand cmdupdate = New SqlCommand(requete, con) cmdupdate.Parameters.AddWithValue("@last_name", last_name.Text) cmdupdate.Parameters.AddWithValue("@first_name", first_name.Text) cmdupdate.Parameters.AddWithValue("@pri_phone_number", pri_phone_number.Text) cmdupdate.Parameters.AddWithValue("@email_address", email_address.Text) Dim updatecount As Integer = cmdupdate.ExecuteNonQuery() con.Close() 'lblresults.Text = updatecount & " " & "records updated!" DetailsView1.ChangeMode(DetailsViewMode.ReadOnly) DetailsView1.DataBind() Using con con.Open() cmdupdate.ExecuteNonQuery() End Using End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 <asp:DetailsView ID="DetailsView1" runat="server" HeaderText="Details Client" DataKeyNames="contact_uuid" AutoGenerateRows="False" DefaultMode="ReadOnly" onmodechanged="DetailsView1_ModeChanging" Height="50px" Width="394px" CellPadding="4" ForeColor="#333333" GridLines="None"> <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" /> <CommandRowStyle BackColor="#FFFFC0" Font-Bold="True" /> <RowStyle BackColor="#FFFBD6" ForeColor="#333333" /> <FieldHeaderStyle BackColor="#FFFF99" Font-Bold="True" /> <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" /> <Fields> <asp:BoundField DataField="contact_uuid" HeaderText="cle"/> <asp:BoundField DataField="last_name" HeaderText="Nom"/> <asp:BoundField DataField="first_name" HeaderText="Prenom"/> <asp:BoundField DataField="pri_phone_number" HeaderText="Telephone"/> <asp:BoundField DataField="email_address" HeaderText="Courriel"/> <asp:TemplateField HeaderText="ID"> <ItemTemplate> <%# Eval("contact_uuid") %> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="contact_uuid_TextBox" runat="server" Text='<%# Bind("contact_uuid") %>' /> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="contact_uuid_TextBox" Text="*" /> </EditItemTemplate> </asp:TemplateField> <asp:CommandField ShowEditButton="True" ShowInsertButton="True" /> </Fields> <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" /> <AlternatingRowStyle BackColor="White" /> </asp:DetailsView>
Partager