Bonjour à tous,
je me permet de poster sur ce sujet car j'ai la même erreur et en double en plus.
EDIT de Sankasssss : J'ai déplacé le message dans une nouvelle discussion sur le bon forum.
La première fois au lancement de l'application le message s'affiche en haut à gauche de l'écran tel quel :
"Une erreur est survenue au cours de la lecture !
La référence d'objet n'est pas définie à une instance d'un objet."
La première phrase provient d'un try/catch mais en regardant dans la partie try je n'ai pas trouvé à quel élément cela correspondait.
La deuxième fois que l'erreur est levée c'est lorsque j'appuie sur le bouton de mon webform. L'erreur provient à ce moment là de la ligne 105, pour tant il me semble bien que la variable 'selection' est initialisé puisque je m'en sers 2 ou 3 ligne avant.
Je suis en stage et je débute avec le framework .NET. L'appli que je dois réaliser doit pouvoir lire un fichier csv, afficher les enregistrements dans une grid et permettre de passer ces enregistrement individuellement ou ensemble dans une 2ème grid.
Voila le code-behind qui correspond :
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using DevExpress.Web.ASPxGridView; using System.IO; using System.Collections; using System.Data; namespace maquette1 { public partial class _Default : System.Web.UI.Page { public DataTable Data { get; set; } public DataTable destData { get; set; } //public bool AllowSelectByRowClick {get; set; } protected void Page_Load(object sender, EventArgs e) { lectureFichier("C212000030.txt"); DXgrid.DataSource = this.Data; DXgrid.DataBind(); DXgrid.KeyFieldName = "Column3"; } public void lectureFichier(string fichier) { try { this.Data = new DataTable(); for (int i = 0; i < 33; i++) { this.Data.Columns.Add(); } // Création d'une instance de StreamReader pour permettre la lecture de notre fichier StreamReader reader = new StreamReader(Server.MapPath(fichier)); string ligne = reader.ReadLine(); ligne = ligne.Replace((char)65533, ' '); //Remplacement du +- par un espace // Lecture de toutes les lignes et affichage de chacune sur la page while (ligne != null) { var row = Data.NewRow(); //Création nouvelle ligne row.ItemArray = ligne.Split(';'); //Définit les valeurs de la row avec la ligne this.Data.Rows.Add(row); //Ajoute la row au DataTable ligne = reader.ReadLine(); ligne = ligne.Replace((char)65533, ' '); } // Fermeture du StreamReader (attention très important) reader.Close(); } catch (Exception ex) { // Code exécuté en cas d'exception Response.Write("Une erreur est survenue au cours de la lecture !"); Response.Write("</br>"); Response.Write(ex.Message); } } protected void Button1_Click(object sender, EventArgs e) { //DataTable destData = new DataTable(); DataRow selection = DXgrid.GetDataRow(1); //Suppression de la ligne avant le transfert Data.Rows.Remove(selection); //Actualisation de l'affichage DXgrid.DataBind(); //lbl_select.Text += row; // Display whether the delete operation succeeded. //Message.Text = "Row deleted successfully."; //DataRow selection = DXgrid.GetDataRow(1); //Ajout à la grille de destination destData.Rows.Add(selection); //string row = selection.ToString(); //Liaison de la grille et sa source + MaJ affichage DXGridExport.DataSource = destData; DXGridExport.DataBind(); //destData = DXgrid.Selection.IsRowSelected; } void CustomersGridView_RowDeleted(Object sender, GridViewDeletedEventArgs e) { } } }
et le code du fichier aspx qui va avec :
Code html : 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
61
62
63
64
65 <%@ Page Title="Page d'accueil" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="maquette1._Default" %> <%@ Register assembly="DevExpress.Web.ASPxGridView.v11.2, Version=11.2.11.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web.ASPxGridLookup" tagprefix="dx" %> <%@ Register assembly="DevExpress.Web.ASPxGridView.v11.2, Version=11.2.11.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web.ASPxGridView" tagprefix="dx" %> <%@ Register assembly="DevExpress.Web.ASPxEditors.v11.2, Version=11.2.11.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web.ASPxEditors" tagprefix="dx" %> <asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.js"></script> <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7-vsdoc.js"></script> </asp:Content> <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> <h2> Maquette 1 : Grid </h2> <p> </p> <p> <dx:ASPxGridView ID="DXgrid" runat="server" CssFilePath="~/App_Themes/Office2003Blue/{0}/styles.css" CssPostfix="Office2003Blue"> <Settings ShowFilterRow="True" ShowGroupPanel="True" ShowFooter="True" /> <Images SpriteCssFilePath="~/App_Themes/Office2003Blue/{0}/sprite.css"> <LoadingPanelOnStatusBar Url="~/App_Themes/Office2003Blue/GridView/gvLoadingOnStatusBar.gif"> </LoadingPanelOnStatusBar> <LoadingPanel Url="~/App_Themes/Office2003Blue/GridView/Loading.gif"> </LoadingPanel> </Images> <ImagesFilterControl> <LoadingPanel Url="~/App_Themes/Office2003Blue/Editors/Loading.gif"> </LoadingPanel> </ImagesFilterControl> <Styles CssFilePath="~/App_Themes/Office2003Blue/{0}/styles.css" CssPostfix="Office2003Blue"> <Header ImageSpacing="5px" SortingImageSpacing="5px"> </Header> <LoadingPanel ImageSpacing="10px"> </LoadingPanel> </Styles> <StylesEditors> <ProgressBar Height="25px"> </ProgressBar> </StylesEditors> <SettingsBehavior AllowSelectByRowClick="true" /> </dx:ASPxGridView> <dx:ASPxGridView ID="DXGridExport" runat="server" CssFilePath="~/App_Themes/Office2003Blue/{0}/styles.css" CssPostfix="Office2003Blue"> </dx:ASPxGridView> <asp:Label ID="lbl_select" runat="server" Text="Sélection : "></asp:Label> <br /> <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" /> </p> </asp:Content>
J'espère que vous pourrez m'aider à résoudre ces problèmes car cela fait 2 jours que je bute sur le transfert des enregistrements d'une grille à l'autre et je commence à saturer !
D'avance merci.
Partager