Thank you Richard. I'll try to dig deeper to find the reason because this is a loose cannon in my code.
steve_9496613
Posts
-
(VS2008 - VB.Net - Compact Framework) DataSet.ReadXml metod fails -
(VS2008 - VB.Net - Compact Framework) DataSet.ReadXml metod failsThanks for your advice Eddy, I'll give it a try. I have already tried SQLite in C++ (Embarcadero C++Builder) but I was not really satisfied from what I managed to do... I see that here there are some articles as "Using SQLite in C#/VB.Net" that seems to be a good point to start.
-
(VS2008 - VB.Net - Compact Framework) DataSet.ReadXml metod failsHi Richard, surely a StackOverflowException means something bad, for this reason I tried to reproduce the problem with few clean lines of code. I managed to replicate the problem just with a Form, a Button and the code I posted. This does not mean that the complete application would not benefit from a reworking (...) but it seems to me that in this situation the problem is in a single line of code. Probably, as Eddy suggests, I should use another way to store and read the application settings.
-
(VS2008 - VB.Net - Compact Framework) DataSet.ReadXml metod failsEddy Vluggen wrote:
You are using an export-format as a datastore; use a real database and the problem is gone.
You're right, I didn't use a real database because of my lack of knowledge about databases.
-
(VS2008 - VB.Net - Compact Framework) DataSet.ReadXml metod failsHi Eddy. These files are created by the application and contain user programming. They can be larger or smaller depending on what the user does. When the user changes something, the file is updated. While the application is running, there is no problem. When the application is closed and restarted, settings are loaded from the file and here is the crash. I load the XML file in a DataSet because I can read all with a line of code with ReadXml and then I copy the DataSet content in the different internal variables and structures; I don't use a real database. To limit the file size and use more than one if one file is not enough could be a solution. If ReadXml works fine in a desktop environment with full .NET, perhaps there is a bug in the .NET Compact Framework version of this function?
-
(VS2008 - VB.Net - Compact Framework) DataSet.ReadXml metod failsThanks Richard. How can I increase the stack size? I use Visual Studio 2008 and this is a smart device VB.net project. I don't find any specific setting in the project properties
-
(VS2008 - VB.Net - Compact Framework) DataSet.ReadXml metod failsThanks Eddy. The path is right. When I go step by step with the debugger everything just stop at the line that read the XML. Today I finnaly get an error message in the device:
System.StackOverflowException: StackOverflowException
at System.Xml.Schema.SequenceNode.ConstructPos(BitSet firstpos, BitSet lastpos, Bitset[] followpos)
at System.Xml.Schema.SequenceNode.ConstructPos(BitSet firstpos, BitSet lastpos, Bitset[] followpos)
at System.Xml.Schema.SequenceNode.ConstructPos(BitSet firstpos, BitSet lastpos, Bitset[] followpos)
...Now I know the reason (I think...) but not the solution... Any idea? Thanks
-
(VS2008 - VB.Net - Compact Framework) DataSet.ReadXml metod failsHello, in my application taht runs in Windows Embedded Compact 7 OS (with Compact Framework 3.5) I have a problem reading a xml file with DataSet.ReadXml. I have made a little test to reproduce the problem:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim dati As DataSet = New DataSet("Programmazione")
Dim fname As String
Dim j As Int32Try fname = "\\Program Files\\SmartDeviceProject1\\default\_19.prg" 'this works 'fname = "\\Program Files\\SmartDeviceProject1\\default\_20.prg" 'this doesn't work Dim fs As New FileStream(fname, FileMode.Open, FileAccess.Read) Dim xr As XmlReader = System.Xml.XmlReader.Create(fs) dati.Clear() j = dati.ReadXml(xr) 'j = 3 = XmlReadMode.InferSchema xr.Close() fs.Close() Catch ex As Exception MessageBox.Show(ex.ToString) End Try
End Sub
I have two test file: default_19.prg and default_20.prg. The first is a little shorter than the second and it is read without problem, the second fails without raising an exception (at least an exception that I can catch). I don't know if it is a file dimension problem or something else. The two files are quite long and I apologize for this but I post them here otherwise who could help me? default_19.prg
False 4:00:00 PM 2 1
1
zona 1
1
2
0
10
12:00:00 PM6:00:00 AM
6:15:00 AM
12:15:00 AM
0
50
1
16:15:00 AM
5:45:00 PM
11:30:00 AM
50
50
2
05:45:00 PM
6:00:00 PM
12:15:00 AM
50
5
3
2 -
[VS2008 - Compact Framework] How to prevent a closed form from been disposedThanks for the sample #realJSOP. Actually I don't need to save the exact moment the form is closed. This form is used to give the user the possibility to change the time and/or the date of the device (Windows CE based) on which the app is running and it is not used to change a variable used somewere else in the app. So I declared an external static class and in this class I declared my form instance:
public static class Cl_Forms
{
public static FormDateTime Suc3 = new FormDateTime();
}As you suggest, in this way the form shown in a modal way should be static and should not be disposed until the app is running. Now I'm testing this solution. Unfortunately the exception occurred rarely and randomly and it was not easy to reproduce it.
-
[VS2008 - Compact Framework] How to prevent a closed form from been disposedI want to understand. I have made what you suggested and now my app is running with the form instance declared in a static class, sometime I push buttons to see if I get the exception. But I wanted to know why this is better considering that I had declared the form static instance inside a form that is never closed until the application is running. WTF...
-
[VS2008 - Compact Framework] How to prevent a closed form from been disposedIn the form there are: 3 BeeMobile.TransparentControls.TImageButton 2 BeeMobile.TransparentControls.TLabel 2 BeeMobile.RoundTextBox.RoundTextBox 1 BeeMobile.MonthCalendar.MonthCalendar 1 BeeMobile.iWheel.iWheel 2 System.Windows.Forms.Timer For what I know, I do not dispose any control voluntarily... Here is the code on the form:
using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;//alias
using LangD = SA7.Cl_LangData;
using Gr = SA7.Cl_Graphics;
using Globals = SA7.Cl_Globals;namespace SA7
{
public partial class FormDateTime : Form
{private bool FormDateTime\_FirstShow = true; // flag: first call to FormDateTime\_Load Cl\_DateTime Tempo = new Cl\_DateTime(); public struct SYSTEMTIME { public short wYear; public short wMonth; public short wDayOfWeek; public short wDay; public short wHour; public short wMinute; public short wSecond; public short wMilliseconds; } //functions to read and to set time \[DllImport("coredll.dll")\] private extern static void GetSystemTime(ref SYSTEMTIME lpSystemTime); \[DllImport("coredll.dll")\] private extern static uint SetSystemTime(ref SYSTEMTIME lpSystemTime); //--------------------------------------------------------------------------------- public FormDateTime() { InitializeComponent(); this.Location = new Point((800 - this.Width) / 2, (480 - this.Height) / 2); } //---------------------------------------------------------------------------------. private void FormDateTime\_Load(object sender, EventArgs e) { if (FormDateTime\_FirstShow) { FormDateTime\_FirstShow = false; } CtrlsDesc(); UpdateDateTime(); ExitTr.Enabled = true; } //--------------------------------------------------------------------------------- private void FormDateTime\_Paint(object sender, PaintEventArgs e) { //draw window border Gr.DrawFrContour(e, 0, 1, 1, this.Width - 1, this.Height - 1); } //--------------------------------------------------------------------------------- //update strings public void CtrlsDesc() { AbortBt.Text = FormMain.LF.GetStr(LangD.LANG\_Win, LangD.LANG\_WinExit); UpdateBt.Text = F
-
[VS2008 - Compact Framework] How to prevent a closed form from been disposedClear. The form is used only to update date and time, it doesn't store any information.
-
[VS2008 - Compact Framework] How to prevent a closed form from been disposedSorry, I was not clear. I understood what you said, FormMain, in wich I declared a FormDateTime instance, is always in the background and is never closed.
-
[VS2008 - Compact Framework] How to prevent a closed form from been disposedHi #realJSOP, I have declared that object STATIC inside a form that is alive untill the app is closed, why it is not enough? Thanks
-
[VS2008 - Compact Framework] How to prevent a closed form from been disposedThank you lw@zi, here is the complete error message:
Error
sa7.exe
ObjectDisposedException
at Microsoft.AGL.Common.MISC.HandleAr(PAL_ERROR ar)
at System.Windows.Forms.Control.get_Visible()
at System.Windows.Forms.Form.ShowDialog()
at SA7.SetupHome_UC.DateTimeBt_Click(Object senter, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at BeeMobile.TransparentControls.TImageButton.OnClick(EventArgs e)
at System.Windows.Forms.Control.WnProc(WM wm, Int32 wParam, Int32 IParam)
at System.Windows.Forms.ContainerControl.WnProc(WM wm, Int32 wParam, Int32 IParam)
at System.Windows.Forms.Control._InternalWnProc(WM wm, Int32 wParam, Int32 IParam)
at Microsoft.AGL.Form.EVL.EnterMainLoop(IntPtr hwnMain)
at System.Windows.Forms.Application.Run(Form fm)
at SAT.Program.Main() -
[VS2008 - Compact Framework] How to prevent a closed form from been disposedThank you #realJSOP for your answer. I can't apply your solution because the form I show must stay over the others and must be closed to let user access to the window below, so I need a ShowModal().
-
[VS2008 - Compact Framework] How to prevent a closed form from been disposedHello everybody. My application runs in Windows Embedded Compact 7,is written in C# and it uses .NET Compact Framework 3.5. In the application there is a form, I call it FormMain, two UserControlls, Page01_UC and SetupHome_UC, another form, FormDateTime. In FormMain i declared:
public static Page01_UC uc1 = new Page01_UC();
public static SetupHome_UC uc2 = new SetupHome_UC();
public static FormDateTime uc3 = new FormDateTime();In the FormMain load event:
uc1.Parent = this;
uc1.Location = new Point(0, 0);
uc1.Page02_UC_Load(); //something to do at startup
uc1.Show();In the uc1 UserControl there is a checkbox used to show SetupHome_UC:
private void SetupCB\_CheckStateChanged(object sender, EventArgs e) { if (SetupCB.Checked) { FormMain.uc1.Hide(); FormMain.uc2.Parent = FormMainRef; //reference to FormMain FormMain.uc2.Location = new Point(0, 0); FormMain.uc2.Page02\_UC\_Load(); //something to do at startup FormMain.uc2.Show(); SetupCB.Checked = false; } }
In uc2 UserControl ther is a button to show FormDateTime:
private void DateTimeBt\_Click(object sender, EventArgs e) { FormMain.uc3.ShowDialog(); }
...at the end... in uc3 there is a button to close the form:
private void AbortBt\_Click(object sender, EventArgs e) { Close(); }
I can show/close uc3 (FormDateTime) many times without problems but sometimes it happens that I get an ObjectDisposedException when I push the button to show uc3. I thought that uc3 should not be disposed but it seems that sometimes it happens. Have I made any mistakes that I don't see? There is a way to make uc3 UNdisposable until the application is closed? ...or any other way to avoid this problem... Thanks in advance.
-
SQLite how to delete rows in a table (C++)Thank you very much k5054 for your explanation! :thumbsup:
-
SQLite how to delete rows in a table (C++)Sorry for the delay. Thank you for your detailed answer. Where is created the TMP table? In the same database where there is the EVENTI table? Thanks.
-
SQLite how to delete rows in a table (C++)Thank you Richard for your helpfull suggestion.