|
Does anyone know best practices (i.e. a tried and true method) for this problem? I want to re-attempt an operation which caused on exception, and do so an arbitrary number of times. For example, I want to try connecting to a database multiple times before giving up.
I have a solution (in C#), but I suspect it's not the best way to do it :
RETRY:
try
{
dbAdapter.Fill(dataSetToFill, statementCriteria.TableName);
}
catch (System.Data.Odbc.OdbcException dbe)
{
x++;
if (x>max)
{
throw new DMTException("************** ODBC Error >>>" + x.ToString(), dbe);
}
else
{
goto RETRY;
}
}
This seems to work, but I'm using goto, which is never a good idea.
Any suggestions?
|
|
|
|
|
Why not a simple loop?
bool success;
do
{
try
{
success = true;
}
catch(OleDbException)
{
success = false;
}
}while(!success);
Charlie
if(!curlies){ return; }
|
|
|
|
|
Quimbly wrote:
I'm using goto, which is never a good idea.
A well placed goto is worth 1000 whiles :p In your case I see nothing wrong. In fact using goto's within try/catch/finally and switches makes alot of sense if well placed I for one is not gonna try figure out how to loop thru something complex. Sure you can perhaps 'refactor' the metohd, but that isnt allways the better idea either. If you want some reassurance of got usage, read a bit of Linux kernel code before bed tonite
top secret Download xacc-ide 0.0.3 now! See some screenshots
|
|
|
|
|
One problem that I have with my form is that many of my controls are generated run-time, and thus whenever the form is returned to normal status from minimized status, or another form is moved over my primary host form, it causes the run-time controls to be repainted, which takes up time, and makes the application seem to be slow. It even causes the menu system to look like it has frozen. Is there some approach to keeping the form controls to be retained without re-referencing the images referenced by them each time the user manipulates any other forms over it?
|
|
|
|
|
If these are controls you're painting then you should pay attention to the PaintEventArgs.ClipRectangle that is passed to your OnPaint handler. This defines the invalidated clipping rectangle that must be repainted. If you're repainting your whole control - and every control - unnecessarily than the performance degradation is a result.
Your desktop is a 2D surface and windows are drawn on top of each other. WM_PAINT messages are only sent to visible windows and those windows are responsible for honoring the clipping rectangle. So if a control is partly obstructed it should only repaint what it has to, otherwise you're wasting resources and your application will appear hanged.
Layered windows were introduced in Windows 2000 where windows can maintain their surfaces despite being covered - almost a 3D approach to drawing. This is something you have to implement yourself, however, by P/Invoking SetLayeredWindowAttributes or UpdateLayeredWindow depending on your approach. It's interesting to note that the Form.Opacity property uses layerd windows, which is why it's only supported in Win2K and beyond.
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
Does anyone know if this can be achieved using C#?
I know that concatenation can be achieved but is overlaying possible?
Any comments, views or opinions would be greatly appreciated!
Regards
Ziggy.
|
|
|
|
|
Of course it can.
The algorithms for mixing two or more signals are the same as with other languages and .wav files are just a bunch of Byte s or Int16 s if you strip the header.
You might want to search the articles, I remember there's at least one dealing with reading a .wav file to memory and once you got that it's more or less adding the (weighted) samples.
mav
|
|
|
|
|
Much obliged for your help!
Ziggy.
|
|
|
|
|
I am developing an application with Winforms (w/ C#).This application will work with MS SQL Server.The thing which made me confused is, my application should be noticed, whenever a update / insert generated in that dataSource.
My friend told me that I could handle this situation , using Sql TimeStamp Column..
I found an article ( http://www.codeproject.com/cs/database/Multi-Tier.asp[^]) which talks about the DBConcurrency
Do you have any other ideas rather than using TimeStamp , or should I solve my problem with these technique ?
If there is anything that you dont understand , please let me know ..
|
|
|
|
|
|
|
Hi,
I have to get the area value of a given building plan image. This is a floor plan image where I need to calculate area of a room in the floor plan or the whole area of the floor plan in square meters. I tried to get the pixel value but didn?t work. I can input a scale which the plan has been drawn but find it difficult to obtain the area.
Is there anyway to do that?
|
|
|
|
|
If anyone can answer either of these questions I would appreciate it greatly! Thanks!
1)I'm using the Microsoft Automation object for PowerPoint, but I'm running into a kind of problem. When I start hammering PowerPoint with requests it crashes (as one would expect). However, when this happens, I would like to be able to catch these exceptions without the user ever knowing.
2) All this time I've thought that I can simply load my automation object like this:
//Create an instance of PowerPoint.
oPPT = new PowerPoint.ApplicationClass();
// Show PowerPoint to the user.
oPPT.Visible = Microsoft.Office.Core.MsoTriState.msoFalse;
As opposed to what I havwe currently:
//Create an instance of PowerPoint.
oPPT = new PowerPoint.ApplicationClass();
// Show PowerPoint to the user.
oPPT.Visible = Microsoft.Office.Core.MsoTriState.msoTrue;
But to my dismay the first time that I tried putting in msoFalse I am suddenly confronted with the following error:
A first chance exception of type 'System.Runtime.InteropServices.COMException' occurred in PowerPointService.exe
Additional information: Application (unknown member) : Invalid request. Hiding the application window is not allowed.
I don't quite know how to get round that one!
Thanks SO much!
Jim
|
|
|
|
|
Esmo2000 wrote:
// Show PowerPoint to the user.
oPPT.Visible = Microsoft.Office.Core.MsoTriState.msoFalse;
What are you trying to do? If you want to show the application window of course Visible has to be set to msoTrue .
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
I am trying to make it so it is NOT visible. I don't know how to do that.
|
|
|
|
|
It's not visible unless you make it visible, so just don't set the Visible property.
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
When I try to not set the visible property it will continue to load okay, but then if I try to use any of the functionality of the program it won't work. For example, if i try to open a file it fails saying there is no active window.
Is there anyway that i can do my processing silently?
Sincere regards,
Jim
|
|
|
|
|
If PowerPoint requires an active window it requires an active window. Most likely this is due to how the animations work, but I don't know. What is obvious is that PowerPoint requires an active window.
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
Hi!
I am trying to serialize a class that contains a list of objects. Here's the situation:
<br />
[Serializable()]<br />
class A: ISerializable{<br />
ArrayList m_aList;
<br />
public A(){}<br />
<br />
public A(SerializationInfo info, StreamingContext ctxt)<br />
{<br />
}<br />
public void GetObjectData(SerializationInfo info, <br />
StreamingContext ctxt) <br />
{<br />
}<br />
}<br />
<br />
class B{<br />
string m_sName;<br />
public string Name{ <br />
get{return m_sName;} <br />
set{m_sName = value;}<br />
}<br />
public B(){}<br />
}<br />
So I need a way to serialize and unserialize the list of objects B contained in A. Normally, B would be a more complicated class with the serialization capabilities too.
Thanks!
Huck
|
|
|
|
|
First of all, your comments - and perhaps your thinking - are wrong in the sense that the serialization constructor is to deserialize data, while ISerializable.GetObjectData is to serialize data. You should read Serializing Objects[^] in the .NET Framework SDK for an overview and examples of serialization.
The easiest way to achieve what you want: don't implement ISerializable . Just attribute your class with the SerializableAttribute as you're currently doing. By default, any private or public members of a class are serialized for types that are serializable. If you implement ISerializable just pass the array to the SerializationInfo.AddValue method:
[Serializable]
public class MyClass : ISerializable
{
MyStruct[] structs;
protected MyClass(SerializationInfo info, StreamingContext context)
{
structs = (MyStruct[])info.GetValue("structs", typeof(MyStruct[]));
}
void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
{
info.AddValue("structs", structs, typeof(MyStruct[]));
}
}
[Serializable]
public struct MyStruct
{
public string Field1;
public int Field2;
[NonSerialized] public string Field3
{
get { return Field1 + Field2.ToString(); }
}
}
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
Hi I am using asp.net and c# to create a web application and I am having trouble deleting records from my sql server database table if anyone has any ideas please help thanks in advance
Tadhg88
[code]DataTable concerts = concertDataSet1.Tables["Concert"];
foreach(DataRow myRow in concerts.Rows)
{
if(ConcertsListBox.SelectedItem.ToString() == myRow[0].ToString())
{
//*** put the new DataRow in the DataTable
concerts.Rows.Remove(myRow);
//*** update the database table using the dataset
sqlDataAdapter1.Update(concertDataSet1);
ConcertsListBox.DataBind();
return;
}
}[/code]
|
|
|
|
|
I think you've removed from concerts DatTable, not table in your DataSet. Use Remove method for concertDataSet1.Tables["Concert"].Rows .
Mazy
"One who dives deep gets the pearls,the burning desire for realization brings the goal nearer." - Babuji
|
|
|
|
|
See DateTimePicker.CustomFormat Property .
Mazy
"One who dives deep gets the pearls,the burning desire for realization brings the goal nearer." - Babuji
|
|
|
|
|
thnx
i have done it myself
i haveplaced 00:00:00 in the customformat instead of HH:mm:ss so i rote it here as a query
sukanya
|
|
|
|
|
HI
I have a datetimepicker contorl on a windows form which i have sent it to the time in the format property. it is in 12 hrs format i want to appear in 24 hrs format
Is there any way to do that?
Sukanya
|
|
|
|