|
In a C# 2008 and C# 2010 desktop applications that I am working on, I have the following questions to ask about adding features to the app.config file:
1. I would like to know how to add a reference to an executable that needs to run. I do not want to hard code the path, I would prefer to have the data path be dynamic.
2. I would like to add 2 entires to the app.config file where the location points to two different locations where output files are placed.
Thus can you tell me and/or point me to a reference that will show me how to make the coding changes to use and app.config file and what to add to the app.config file for my goals to be accomplished? (I basically would like to know what ‘tag(s)’ in the app.config I would need to place these new references.)
|
|
|
|
|
Here is an article right here on CodeProject.
Read/Write App.Config File with .NET 2.0[^]
It should still work for future versions of .NET as well.
The best way to accelerate a Macintosh is at 9.8m/sec² - Marcus Dolengo
|
|
|
|
|
The basic use of the config file is so your app can load data.
Presumably that is what you intend to do with the data once it is in there.
However ignoing how you add it to the config file, exactly when do think you are going to do this?
|
|
|
|
|
You can store paths in app.config file that you can change after installation of the application:
<configuration>
<appSettings>
<add key="path1" value=""/>
<add key="path2" value=""/>
</appSettings>
</configuration>
After installation of the application app.config is renamed to <projectname>.exe.config. So you need to change your settings in this file.
You can store paths in app.config file that you can change after installation of the application:
<configuration>
<appsettings>
<add key="path1" value="">
<add key="path2" value="">
After installation of the application app.config is renamed to <projectname>.exe.config. So you need to change your settings in this file.
|
|
|
|
|
Based upon your statement,
string[] names
= context.Customers.Select(c => c.Name).ToArray();
How would I change this statement to mean the following from the sql?
select customer_id from Customers where customer_received_date is not null
|
|
|
|
|
Well, I would change it to use the more natural (to me anyway) way of doing LINQ like this:
string[] names = (from p in context.Customers
where p.customer_received_date != null
select p.customer_id).ToArray();
|
|
|
|
|
There is no technical problem or error in my project.
This question is about how improve my project to be more user friendly.
Let me explain about my project:
There are many tables in DB and I have created a CRUD Form for each table; There is Form that contains some buttons and every button opens a single CRUD Form.
Now imagine that user want to register an student and the user is very busy because of large number of students; so the user should open and close many of Form from the board just for entering a single student's information.
Do you have any idea to improve my project?
Meysam
|
|
|
|
|
Have separate "Save and Close" and "Save and add another" buttons?
|
|
|
|
|
You know that in DB there is a table for each existence.
Person, PhoneType, Phone, Register, Class, Teacher, etc; and for each of them there is a CRUD Form. If one of them will cancel so I would cancel all of the insertion before the current Form.
Did you get what I mean?
In other word I should update all of them if the last Form's DialogResult equals DialogResult.OK and reject all changes if it is DialogResult.Cancel.
Meysam
|
|
|
|
|
Meysam Tolouee wrote: Did you get what I mean?
No.
But now I get the feeling that what you have is quite dreadful. I'm glad you're trying to improve it.
|
|
|
|
|
Let's go forward step by step.
First the user will open and enter personal info about the first student in CustomerUI then he/she will close that. Now the entries will update at FormClosing by user's confirmation.
Second step the user is going to enter information about class registration. Now consider that the student doesn't want to register any more.
At thiss time there is a record in "Person" table in DB that is useless.
Was it clear?
Meysam
|
|
|
|
|
Meysam Tolouee wrote: I have created a CRUD Form for each table
That is a very bad idea; it's not how the user thinks of the task and the schema should not be so exposed to the user.
I also fear for what happens when the user deletes records improperly (not that delete should be allowed anyway).
|
|
|
|
|
I know and it is the reason that I want to improve my project for.
Meysam
|
|
|
|
|
Meysam Tolouee wrote: This question is about how improve my project to be more user friendly.
Have you considered asking your users[^]? Joel also has a nice article on dogfooding, well worth the read.
Bastard Programmer from Hell
if you can't read my code, try converting it here[^]
|
|
|
|
|
Sounds like you’re talking about a “transaction”.
Instead of multiple forms, it seems like a single form with multiple “tabs” of related information would be more effective.
Use the form to create a transaction for registering the student by first storing all data that is entered “locally”; in a local copy of the database or as XML on a local drive.
Cancelling the transaction is simple; you don’t commit to the “production” database and just delete the local copy.
If the transaction is complete and the student is to be registered, you post all the local data to the server in one step and then delete the local copy.
|
|
|
|
|
I like your idea and I am going to try it.
Thanks.
Meysam
|
|
|
|
|
I'd implement a menu bar &/or a toolbar. So no matter where the user is in the app (unless in a modal form) they can add a student quickly by selecting the "Add Student..." menu item. I would also include a shortcut for the menu item. I would add all the common tasks a user needs in the menu bar.
"You get that on the big jobs."
|
|
|
|
|
float Width = 47;
textBox1.Text = System.Convert.ToString(Width);
Consider above statements.
after executing this command the content of
textBox1.Text will be 46.99 instead of 47;
I've solved this problem by some functions, but I want to see is there any tuning in C# 2010 that I missed it? thanks
|
|
|
|
|
I'm not sure why you are seeing 46.99. When I run this code, I see 47 written out both times:
float myVal = 47;
string text = Convert.ToString(myVal);
Console.WriteLine(myVal.ToString());
Console.WriteLine(text);
|
|
|
|
|
There is no tuning for this. This is a side effect of trying to store an infinite number of floating point numbers in a finite amount of bits.
Read this[^] for more information.
|
|
|
|
|
0) Avoid float ; try Decimal or double
1) Avoid Convert ; in this case use ToString , perhaps with a format parameter
2) Avoid TextBox for numeric values; use a NumericUpDown
|
|
|
|
|
A project with an output type of class library cannot be started directly.In order to debug this project, add an executable project to this solution which references the library project. Set the executable project as the startup project.
While running the program in C# visual studio 2010 I am getting this error...! please tell me how to sort out this error..!
Thanks.
Regards
|
|
|
|
|
You need an executable that calls into that DLL appropriately. If you haven't got one, you have to write on. If you have got one and it's in the same solution, right click on the project name for that executable and select "Set as StartUp project" from the context menu.
|
|
|
|
|
Thank you 
|
|
|
|
|