Click here to Skip to main content
15,884,933 members

Console application- exception while SAVE button click in C# WPF

Member 14672509 asked:

Open original thread
I'm using Windows Application in WPF C# Lang in Embedded Field. and Console window is only for Print Statements. Writting a Program a Load XML value to Listbox and SAVE Listbox items to XML flie. Listbox take items from TextBox. when Add button click textbox item added to Listbox. when i click SAVE Button 1st Listbox item will saved in xml File and then item will stored in Board [IOT related Application]

now my problem is : when im click on SAVE Button data is saved in XML file but not saved in Board, im getting some exception and application will close Automatically. Getting Exception Like This :
at System.IO.Filestream.Init(String Path, FileMode mode, FileAccess Access, Int32 rights, boolean useRights, FileStream Share, int32 buffersize, fileoption option, SECURITY_ATTRIBUTES secattrs, string msgPath, boolean bFfromProxy, boolean uselongpath, boolean checkhost)
at System.IO.FileStream..cattr(StringPath, FileMode, fileacces access, FileShare share, Int32 bufferSize)
at System.XML.xmldownloadmanager.getstream(Uri uri,ICredentials credentials, IWebProxy Proxy, REquestCachePolicy Cachepoliy)at System.XML.xmlURLResolver.getentity(Uri absoluteuri, string role, type ofobjectToReturn)
at System.Xml.xmltextReaderImpl.FinishInItUriString()
at System.Xml.xmlREaderSettings.CreateReader(String input uri, XmlParserContext Inputcontext)
at System.Xml.Linq.xElement.Load(String uri.LoadOption LoadOption)at MainWindow.Button_Click(object sender, Routed EventArgs e)
at System.Windows.EventRoute.InvokehandlerImpl(Objext Source, RoutedEventArgs Args, Boolean reRaise)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject Sender, RoutedEventArgs Args)
at System.Windows.Control.Premitives.buttonbase.OnClick()at System.Windows.Control.Button.OnClick()
at System.Windows.Control.Primitives.ButtonBase. OnmouseLeftButtonUp(MouseButtonEventArgs E)
at System.Windows.RoutedEventArgs.InvokeHandlers(Deleget Handler, ObjectTarget)
at System.Windows.EventRoute.InvokeHandlerImpl(Object Source, RoutedEventArgs Args, Boolean ReRaised)
at System.Windows.UIElement.ReRaiseEventAs(DependencyObject Sender, RoutedEventArgs Args, RoutedEvent NewEvent)
at System.Windows.UIElement.OnMouseUPThunk(Object Sender, MouseButtonEventArgs e)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegete Handler, Object Target)
at System.Windows.RoutedEventHandlerInfo invokeHandler(Object target, RoutedEventArgs RoutedEventargs)
at System.Windows.EventRoute.InvokeHandlerImpl(Object Source, RoutedEventArgs Args, Boolean Reraised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject Sender, RoutedEventArgs Args)
at System.Windows.UIElement.RaiseTrustedEvent (RoutedEventArgs Args)
at System.Windows.Input.InputManager.ProcessStageingArea()
at System.Windows.Input.InputManager.ProcessInput (InoutEventArgs Input)
at System.Windows.Input.InputProviderSite.ReportInput (InputReport inputreport)


What I have tried:

My Code is :
C#
private void LoadXML_Click(object sender, RoutedEventArgs e)
{
    XElement element = XElement.Load("WH_Num.xml");
    foreach (XElement item in element.Elements("Number1"))
        ListBox_PhoneNumber.Items.Add(item.Value);
    foreach (XElement item in element.Elements("Number2"))
        ListBox_PhoneNumber.Items.Add(item.Value);
    foreach (XElement item in element.Elements("Number3"))
        ListBox_PhoneNumber.Items.Add(item.Value);
    foreach (XElement item in element.Elements("Number4"))
        ListBox_PhoneNumber.Items.Add(item.Value);
    foreach (XElement item in element.Elements("Number5"))
      
    MessageBox.Show("Number Loaded to XML");
}

private void SAVEXML_Click(object sender, RoutedEventArgs e)
{
    try
    {
        information info = new information();
        if (ListBox_PhoneNumber.Items.Count > 0) info.Number1 = ListBox_PhoneNumber.Items[0].ToString();
        if (ListBox_PhoneNumber.Items.Count > 1) info.Number2 = ListBox_PhoneNumber.Items[1].ToString();
        if (ListBox_PhoneNumber.Items.Count > 2) info.Number3 = ListBox_PhoneNumber.Items[2].ToString();
        if (ListBox_PhoneNumber.Items.Count > 3) info.Number4 = ListBox_PhoneNumber.Items[3].ToString();
        if (ListBox_PhoneNumber.Items.Count > 4) info.Number5 = ListBox_PhoneNumber.Items[4].ToString();
      

        SaveXML.savedata(info, "WH_Num.xml");
        MessageBox.Show("Data Saved");
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }

// THIS CODE IS FOR SAVE DATA IN BOARD LEVEL
    string Number1 = string.Empty;
    string Number2 = string.Empty; 
    string Number3 = string.Empty; 
    string Number4 = string.Empty; 
    string Number5 = string.Empty; 
    if (ListBox_PhnNumbr.Items.Count > 0) Number1 = ListBox_PhnNumbr.Items[0].ToString();
    if (ListBox_PhnNumbr.Items.Count > 1) Number2 = ListBox_PhnNumbr.Items[1].ToString();
    if (ListBox_PhnNumbr.Items.Count > 2) Number3 = ListBox_PhnNumbr.Items[2].ToString();
    if (ListBox_PhnNumbr.Items.Count > 3) Number4 = ListBox_PhnNumbr.Items[3].ToString();
    if (ListBox_PhnNumbr.Items.Count > 4) Number5 = ListBox_PhnNumbr.Items[4].ToString();
    MessageBox.Show("SOTA Configuration Saved Successfully"); 
    return new SOTA_whitelist_Number(Number1, Number2, Number3, Number4, Number5)
}

Where I'm missing? Why this exception is coming? Anyone help me

SaveXML Function is as follows:
C#
class SaveXML
{
    public static void savedata(object obj, string filename)
    {
        XmlSerializer sr = new XmlSerializer(obj.GetType());
        TextWriter writer = new StreamWriter(filename);
        sr.Serialize(writer, obj);
        writer.Close();
    }
}
Tags: C#, Visual Studio, XAML, WPF

Plain Text
ASM
ASP
ASP.NET
BASIC
BAT
C#
C++
COBOL
CoffeeScript
CSS
Dart
dbase
F#
FORTRAN
HTML
Java
Javascript
Kotlin
Lua
MIDL
MSIL
ObjectiveC
Pascal
PERL
PHP
PowerShell
Python
Razor
Ruby
Scala
Shell
SLN
SQL
Swift
T4
Terminal
TypeScript
VB
VBScript
XML
YAML

Preview



When answering a question please:
  1. Read the question carefully.
  2. Understand that English isn't everyone's first language so be lenient of bad spelling and grammar.
  3. If a question is poorly phrased then either ask for clarification, ignore it, or edit the question and fix the problem. Insults are not welcome.
  4. Don't tell someone to read the manual. Chances are they have and don't get it. Provide an answer or move on to the next question.
Let's work to help developers, not make them feel stupid.
Please note that all posts will be submitted under the http://www.codeproject.com/info/cpol10.aspx.



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900