|
OK, I understand your reasoning. That still leaves the question, how do I handle this situation? I'm reading articles about this situation online and in Studio's online help but they all seem to deal with the very simplest of situations (e.g. just set a label control if an error occurs).
Thanks again.
|
|
|
|
|
Just don't let the code panic. Just because a database call failed, you don't need to drop everything and run. In the catch section just set the rdr variable to null and prepare the error message, then after the try--catch block you just check if the variable is null or not. If it's not null, loop thought the data. If it's null, just skip that part and go directly on to gracefully closing the database.
I always put the connection object in a using() block. That way, what ever happens, at least the database connection is closed correctly.
using (SqlConnection connection = new SqlConnection(...)) {<br />
...do the database stuff<br />
}
The using() block always calls the Dispose method of the connection, and as the Dispose method of the connection always calls the Close method, you don't have to do that either.
---
b { font-weight: normal; }
|
|
|
|
|
That worked! Thank you very much!!
|
|
|
|
|
I am using Visual Studio 2005. I wrote a Setup Project to install my application. After setup is complete, I need to get the destination folder that the user chose to install to (not the default destination folder, but the one the user actually chose during the install. I found an article that said in Visual Studio 2003, this was done by adding a registry entry (through the Setup project) and setting the value of the entry to [INSTALLDIR]. In Visual Studio 2005, I have no problem adding a registry entry and setting it's value, but [INSTALLDIR] is not recognized as a special tag, and is just treated as a literal string. Has the name of this tag changed in VS 2005? Anyone know how to do this in VS 2005
thanks!
|
|
|
|
|
i had the same need, what is your goal.
|
|
|
|
|
My goal is to be able to read the install dir. path from within the app at run time. So, having the Setup program write the path to the registry would be a perfectly acceptable way to accomplish this goal, only problem is I can't figure out how to do this.
|
|
|
|
|
i mean if you explain what have you to do, you may avoid to get the user setup path.
Anyway after the install you can run automatically a little .exe without form installed together your main app, that create a registry key
|
|
|
|
|
Yes, but how do I get the path to put it into the registry key?
|
|
|
|
|
What is the best way to update a database like Access, use oleDBcomand with parameters or use DataSet?
|
|
|
|
|
The dataset uses a command object to update the database in the end anyway, so you can skip the middle man and do the work yourself. Use a dataset if you find it more convenient.
---
b { font-weight: normal; }
|
|
|
|
|
but what is the faster way? if i use no dataset way i've to connect everytime at the database so it spend time.
Using dataset at the end, when i close the program i've to update the database anyway so i connect just one time to it, but i've to write SQL insert, update, delete comand as in no DataSet way.
So what is the better or faster way?
|
|
|
|
|
Neither. You'll be doing the exact same thing either way. THe only difference will be when you do it. You'll be using your own SQL statements and updating records, one at a time, based on the changes your holding in your data model. Using a DataSet object is no different. Same SQL statements, just a different object holding your data.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
If you delay the updates until you close the program, you will be relying on the program never to crash. If the program for some reason fails to store the data, you might be losing hours of work.
Also, any changes you do won't be visible in the database. That means that you only use the database for storing data, you can't really use it.
---
b { font-weight: normal; }
|
|
|
|
|
I have a list of buttons in the panel( one below the other. Just like a dropdowm menu). It is invisible by default. I have a button on the form. When I click the button on the form, I show the panel just below the button. Now when I click anywhere on the form other than the panel and buttons inside the panel, the panel should become invisible.
Any ideas on how to achive this would be very much appreciated.
Thanks,
VPMahank.
|
|
|
|
|
Just set the Visibility property to false in te Click evnet of a form...
Q:What does the derived class in C# tell to it's parent?
A:All your base are belong to us!
|
|
|
|
|
Yes, I totally understand. But if there are a bunch of controls in the form, lets say there are a few labels on the form, the visibility property of the panel has to be set on click event of each label. I cannot just handle it in the Click event of the form. I need to have a generic way of doing this.
Thanks,
VPMahank
|
|
|
|
|
I have an NT Service written in c# (.net framwork 2.0). When it hits a certain error condition, I want it to be to cause itself to stop. How can I do this?
|
|
|
|
|
I am developing a windows application and we want a floating toolbar. Does anyone know whether VS.net support floating toolbar in C#?
Thanks
|
|
|
|
|
no, you have to create another form then handle windows message to kill or set focus to the main and tool in the same time
|
|
|
|
|
Take a look here[^].
This docking framework is able to create floating tool bars.
Regards,
mav
|
|
|
|
|
Thanks a lot. It looks very useful, I will try it.
|
|
|
|
|
In global.asax I have:
<br />
protected void Application_AuthenticateRequest(Object sender, EventArgs e)<br />
{<br />
HttpApplication app = (HttpApplication) sender;<br />
<br />
if(app.Request.IsAuthenticated)<br />
{<br />
CustomPrincipal ppal = new CustomPrincipal( Context.User.Identity.Name.ToString(), ((CustomIdentity)Context.User.Identity).ProjectID );<br />
<br />
Context.User = ppal;<br />
}<br />
}<br />
But when I attempt to go to a page it throws a "Specified cast is not valid" on this line: CustomPrincipal ppal = new CustomPrincipal( Context.User.Identity.Name.ToString(), ((CustomIdentity)Context.User.Identity).ProjectID );
CustomIdentity is an IIdentity with some extra stuff in it.
What I am trying to do is have one web site that is a work flow managment program, but will encompas several projects. So on the login page you put in a username and password then select a project from a drop down list and it authenticates the user based on whether they have a role in this project (junction table). The project id needs to be readily available on a per user basis as every stored procedure has project id as a parameter so that only data relevent to the given project is displayed.
Is there a better way to handle this situation or a way to make Project id available from context as well as be nessesary to make a Principal or Identity object.
-- modified at 16:54 Tuesday 17th January, 2006
|
|
|
|
|
Is the object that Identity refers to really a CustomIdentity object? You can't cast an object to something that it isn't.
---
b { font-weight: normal; }
|
|
|
|
|
It should be as I can cast Context.User.Identity to CustomIdentity everywhere else in the program, but for some reason it isn't in global.asax... Regardless I managed to get it to work by using the Context.Cache.
|
|
|
|
|
Hi!
Is it possible to change the computer name and the workgroup using C#? I'm trying to put together a program that:
1. Creates three user accounts
2. Changes the name of the computer
3. Changes the name of the workgroup
So far I've been able to create the user accounts. Can someone help me with the last two?
Thanks in advance!
Matthew
|
|
|
|