|
Hi Ray,
with the risk to state the obvious: the Debug class only works in a debug build. Check your "Configuration Manager". And check your project properties: in the Build pane, there may be a checkbox "define DEBUG constant" which should be checked.
Luc Pattyn [Forum Guidelines] [My Articles] Nil Volentibus Arduum
Please use <PRE> tags for code snippets, they preserve indentation, improve readability, and make me actually look at the code.
|
|
|
|
|
Looks good to me... I even changed my setting over to release, ran it and then went back to debug and reran it thinking maybe there was a corrupted configuration or something...
No luck...
|
|
|
|
|
You could replace Debug.WriteLine by Console.WriteLine just to test the statement is reached...
Luc Pattyn [Forum Guidelines] [My Articles] Nil Volentibus Arduum
Please use <PRE> tags for code snippets, they preserve indentation, improve readability, and make me actually look at the code.
|
|
|
|
|
Decided to just bite the bullet and use the 'Reset all settings' option in the 'Import and Export Settings Wizard'.
Seems to have resolved the issue.
I now have my stuff back written to the Output window now...
|
|
|
|
|
|
|
Hi Guys,
I'm having trouble with an exception error after executing a query to return one record from my dataset.
If the query returns a result that doesn't exist within the database, I am getting a 'Exception has been thrown by the target of an invocation'.
Could someone please explain what this means and where I need to look to fix it and avoid an exception?
Thanks,
Joe
|
|
|
|
|
Joe Stansfield wrote: If the query returns a result that doesn't exist within the database
What?
With so little information it is impossible to tell you where to look. Perhaps if you posted a snippet of the relevant code we may be able to help.
I know the language. I've read a book. - _Madmatt
|
|
|
|
|
Have you checked the innerException of the Exception('Exception has been thrown by the target of an invocation') ??? whats it saying ???
With great code, comes great complexity, so keep it simple stupid...
|
|
|
|
|
More info is required because there are many reasons this exception can be thrown. Is it a stored procedure that you are calling? Does it always work the first time? Stuff like that
Architecture is extensible, code is minimal.
|
|
|
|
|
Provide some code.........
|
|
|
|
|
Before executing the query, try checking that the .Count of said query is positive.
This might solve your problem.
|
|
|
|
|
Sorry about the delay in getting back to you all - have been out of the office and based in Australia.
Code that executes with the query is as follows:
try
{
this.file_InfoTableAdapter.fFile_File_Open(this.salesDataSet.File_Info, ((int)(System.Convert.ChangeType(fFile_Open_File_Text_Box.Text, typeof(int)))));
this.saleInformationDataGridView.Sort(this.saleInformationDataGridView.Columns["dataGridViewTextBoxColumn9"], ListSortDirection.Descending);
photoListBox.Items.Clear();
photoListBox.Items.Add(file_NameTextBox.Text + "_a.jpg");
photoListBox.Items.Add(file_NameTextBox.Text + "_b.jpg");
photoListBox.Items.Add(file_NameTextBox.Text + "_c.jpg");
photoListBox.Items.Add(file_NameTextBox.Text + "_d.jpg");
string photoDisplay = "P:\\" + localityTextBox.Text + "\\" + file_NameTextBox.Text + "_a.jpg";
this.photoBox.ImageLocation = photoDisplay;
land_use_codeTextBox.ReadOnly = true;
land_areaTextBox.ReadOnly = true;
construction_yearTextBox.ReadOnly = true;
room_countTextBox.ReadOnly = true;
wall_construction_codeTextBox.ReadOnly = true;
roof_construction_codeTextBox.ReadOnly = true;
building_areaTextBox.ReadOnly = true;
}
catch (System.Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
}
I have limited knowledge about avoiding exceptions, but it is my understanding that all the code underneath the running of the query is being run even if the query returns no result? Leading to the exception?
But to be honest, I really have no idea... I do know that there is a lot I could improve in the code, but it is a very much "Learn as I go" approach... Which of course isn't the best, but I can only learn and get better!
Joe
|
|
|
|
|
Joe follow Paw Jershauge's advice.. look at the inner exception
|
|
|
|
|
It is possible to run addition of items in background worker but it needs to add them in report progress handler, main thread only, which also hangs the application.
Is there any other approaches to add them to list view without application freeze?
Чесноков
|
|
|
|
|
|
That does not solve application freeze. You can not move the window
Чесноков
|
|
|
|
|
First, putting 100,000 items in a ListView control is ridiculous. Do you really think a user wants to scroll through all that just to find a particular record??
If you add all the items to the listView all at once, there's no way to avoid the "freeze". That's because the UI thread has to handle adding those items to the ListView. it cannot be done from another thread because you can only maniplute a control on the thread that created it.
You can, however, add each item tot he ListView, one a few at time, from a background thread, by Invoking a method on the UI thread to add just a few items at a time. This will give the UI thread time to handle other requests, but it'll take considerably longer to add your 100,000 items.
You have a serious design flaw in your app if you think you need to show 100,000 items in a single control.
|
|
|
|
|
Dave Kreskowiak wrote: You have a serious design flaw in your app if you think you need to show 100,000 items in a single control.
Have you ever ran Windows Events on your machine?
How many events are there in a list view for a couple of years e.g. windows applications
It does not freeze as you run it either.
Чесноков
|
|
|
|
|
See my answer below.
I must get a clever new signature for 2011.
|
|
|
|
|
Chesnokov Yuriy wrote: Have you ever ran Windows Events on your machine?
What Dave was saying is not that can't be done, or even that it is particularly difficult.
What he was saying - and I agree wholeheartedly - is that if you are loading 100,000 items into a listview, then your design is seriously flawed. It doesn't matter if other software does it: it is still a stupid idea and evidence that the designer / programmer is lazy.
Think about it from the point of view of the user. How do you find what you want in a list of 100,000 items? If you got 50 to a page, that is 2,000 pages to scroll through. Instead, give them searches, give them filters, show the top twenty and tell them how many more there are. Does Google load all 10,000 hits into a single page? I wonder why not!
Real men don't use instructions. They are only the manufacturers opinion on how to put the thing together.
|
|
|
|
|
OriginalGriff wrote: How do you find what you want in a list of 100,000 items
There is scroll bar, I can scroll them all easily and find event I'm looking for.
Filtering is another extension to consider, the problem is to load them all at once.
Why Microsoft can do that and we can't?
Was it the serious desing flaw in windows event viewer or not we may further argue.
OriginalGriff wrote: Does Google load all 10,000 hits into a single page
Perhaps there might be other reasons we may ask google. I presume it may hang IE, firefox or any other browser and induce them to consume all the free mem.
If it hangs IE to load some of the pages with java which fits into a single window, consider what would happen with a page consisted of 10000 links.
Чесноков
|
|
|
|
|
Chesnokov Yuriy wrote: There is scroll bar, I can scroll them all easily
Try scrolling 100k items on my machine, locating the entry with the name "Bla400x". You could finish an entire bottle of Jacks' before you even reached the entries that start with a "B".
Chesnokov Yuriy wrote: Why Microsoft can do that and we can't?
You're referring to the Spy-program, where a ListBox is used for logging. Microsoft is using the same technique in it's Sql Profiler. The difference is that it's merely adding a few items every second, and the user will rarely scroll through all the items to locate a particular entry.
Now, adding text to a collection that's displayed in a control doesn't take much time. Loading a lot of records from your database and adding them to your list will take a lot of time, especially if Windows keeps repainting after each fresh insert.
Chesnokov Yuriy wrote: Perhaps there might be other reasons we may ask google. I presume it may hang IE, firefox or any other browser and induce them to consume all the free mem.
That's far-fetched, your computer won't run out of memory if Google replies with more than 50 results. It would be rediculous to assume that you're going to read over 500 results, so they send you what you're probably going to use. How often did you navigate to the second result-page?
I are Troll
|
|
|
|
|
Eddy Vluggen wrote: ry scrolling 100k items on my machine, locating the entry with the name "Bla400x". You could finish an entire bottle of Jacks' before you even reached the entries that start with a "B".
honestly, you have to scroll to specific time, and event icons are pretty distinct, and it is very easy to quickly locate minority of error lines with red icons among majority of bluish info events. while scrolling time column is pretty visible as you scroll it.
I'm off alcohol that enables me to scroll in less than second entire list
Eddy Vluggen wrote: The difference is that it's merely adding a few items every second, and the user will rarely scroll through all the items to locate a particular entry.
I've just rechecked in Event Viewer events logs, scroll bar is so small that entire list is filled. You can scroll to any place.
I do not know it might be some undocumented feature or they are using virtual view.
Eddy Vluggen wrote: rediculous to assume that you're going to read over 500 results,
I do so always, rather than clicking 50 times to forward to next item, I prefer scroll bar move.
Чесноков
|
|
|
|
|
Why not show your design to some users and see what they think of having to scroll through that many items? Get their feedback before you commit to it.
|
|
|
|