|
|
Thank you both! I had needed to use @ in Delphi so much that I completly forgot it's (not too good) use in C. And sorry for the horrible example in my question, of course "\" wouldn't compile, it was just a dummy question
Thank you so much,
Dirso
|
|
|
|
|
|
Ive got a form that the user can enter information on, when clicking the "SAVE" button the general proccess is the following...
private void SaveData()
{
if(dataIsValid())
{
}
}
lets say the form has a TextBox and a ComboBox
the dataIsValid() method will look something like this
private bool dataIsValid()
{
if (textBox1.Text = "")
{
MessageBox.Show("Please Enter A Name");
textBox1.Focus();
return false;
}
else if (comboBox1.SelectedValue == null)
{
MessageBox.Show("Please Select An Age Group");
comboBox1.Focus();
return false;
}
return true;
}
The idea is to one by one check that the fields have data... But now lets add 3 maskedTextBoxes with mask "##:##" for a time span value. Now the data doesn't just have to be there, but valid as well.
the solution i came up with looks dodgy and can be a nightmare to maintain... its as follows
private bool dataIsValid()
{
if (textBox1.Text = "")
{
MessageBox.Show("Please Enter A Name");
textBox1.Focus();
return false;
}
else if (comboBox1.SelectedValue == null)
{
MessageBox.Show("Please Select An Age Group");
comboBox1.Focus();
return false;
}
try
{
TimeSpan.Parse(maskedTextBox1.Text);
try
{
TimeSpan.Parse(maskedTextBox2.Text);
try
{
TimeSpan.Parse(maskedTextBox3.Text);
}
catch
{
MessageBox.Show("Please Enter A Duration");
maskedTextBox3.Focus();
return false;
}
}
catch
{
MessageBox.Show("Please Enter A Duration");
maskedTextBox2.Focus();
return false;
}
}
catch
{
MessageBox.Show("Please Enter A Duration");
maskedTextBox1.Focus();
return false;
}
return true;
}
Does anyone have any better ideas cuz im all out?
Im sure there has to be a better way of doing this...
Thanx
Harvey Saayman - South Africa
Junior Developer
.Net, C#, SQL
you.suck = (you.passion != Programming)
|
|
|
|
|
u can use the Mask Property that validates for u
and also
use the maskedTextBox1_MaskInputRejected Event that this Param
(object sender, MaskInputRejectedEventArgs e)
and :
e.Position
e.RejectionHint
Have Fun
Never forget it
|
|
|
|
|
Try writing one routine that will validate a control of a given type, then call that routine with each control of that type. It's less code, lower complexity, and only one place to update the validation algorithm if it needs to change.
|
|
|
|
|
I would recommend wiring into all the controls Validating events, then you can just call the forms ValidateChildren method to validate everything. I'd also recommend using an Error Provider, which can display an icon and error tooltip beside each invalid control.
If you'd prefer to keep your current structure for validation and just clean it up a bit, you could use the TimeSpan.TryParse instead of TimeSpan.Parse, like so:
<br />
TimeSpan timeSpan;<br />
if(!TimeSpan.TryParse(maskedTextBox1.Text, out timeSpan)){<br />
}<br />
|
|
|
|
|
thanx for the reply...
i wasnt aware of the TryParse() method... thank you
Harvey Saayman - South Africa
Junior Developer
.Net, C#, SQL
you.suck = (you.passion != Programming)
|
|
|
|
|
I can see you already got help with that , but just one more thing:
you wrote:
if (textBox1.Text == "")
{
MessageBox.Show("Please Enter A Name");
textBox1.Focus();
return false;
}
and that is not true, it depends on what you expect.
from this code my name can be " " (white space).
besides that, I saw you're using a db, so if you're building you own queries to the database (which in not recommended), my name can be:
"' OR '1'='1", which might get me a log-in to your system, or even something like: "bla'; DROP TABLE Users /*", which of course I need to get the table name right, but usually it is not so hard.
All I'm trying to point out is, be more careful when performing validation.
|
|
|
|
|
Thanks for the reply
The example i gave was just a mock up to demonstrate the BASIC idea of what im doing, the fields get checked for white spaces, special characters etc.
Also the injection wont work because i use stored procedures etc.
Thanx for the heads up anyway
Harvey Saayman - South Africa
Junior Developer
.Net, C#, SQL
you.suck = (you.passion != Programming)
|
|
|
|
|
hi every body
nice to join you..a friend of me told me about this website.
i have a small project which is to create your own version of arralist in c# but of course without using the arraylist collection ...
i really need some help here.
two classes are reguired: class mylist, class node
class mylist
{
count
node first
node last
//methods:
add(){}//add at last node
remove(){}
removeAt(){}//depends on a specific index of each node
insert(){}//depends on a specific index of each node
sort(){}
reverse(){}//to swap two nodes
removeRange(){}//to delete set of nodes between two indecies
search(){}
getRange(){}//to return how many nodes does the arraylist contain
}
class Node
{
node next;
node previous;
Object value;
index;
}
this is the initial scratch..please i need all help that you can offer me
how can i do this??
while(1)
System.out.println("I love Palestine ");
|
|
|
|
|
This looks like the homework assignment you were given with no work done to me. What do your course notes say ?
Christian Graus
No longer a Microsoft MVP, but still happy to answer your questions.
|
|
|
|
|
i just wanted to have some extra explanation ...thats all
while(1)
System.out.println("I love Palestine ");
|
|
|
|
|
Im also intrested in that topic, so plz help me
thank you
|
|
|
|
|
See here.[^]
Today's lesson is brought to you by the word "niggardly". Remember kids, don't attribute to racism what can be explained by Scandinavian language roots.
-- Robert Royall
|
|
|
|
|
Or if you really need a bit of code to get started:
while (!TurnToBeASplodyDope(lolla2006))
{
try
{
CheatOnMyHomeWork();
}
catch
{
MessageBox.Show("Busted")
}
}
Today's lesson is brought to you by the word "niggardly". Remember kids, don't attribute to racism what can be explained by Scandinavian language roots.
-- Robert Royall
|
|
|
|
|
Now, if you were to publish the implementation of CheatOnMyHomeWork() we might get rid of these
kinds of questions once and for all.
|
|
|
|
|
void CheatOnMyHomeWork()
{
while (!AnswerGivenByASucker && !DueDatePassed)
{
PostPatheticMessagesToProgrammingForums();
}
}
Today's lesson is brought to you by the word "niggardly". Remember kids, don't attribute to racism what can be explained by Scandinavian language roots.
-- Robert Royall
|
|
|
|
|
Why the use of two negation operators?
while (!(AnswerGivenByASucker || DueDatePassed))
{
PostPatheticMessagesToProgrammingForums();
}
Dave
|
|
|
|
|
actually i have already published the implementation of NotYourBusiness()
while(1)
System.out.println("I love Palestine ");
|
|
|
|
|
while (!TurnToBeBigMouth(dan neely))
{
try {
ActingSoRude();
}
catch {
MessageBox.Show("Blazing")
}
}
while(1)
System.out.println("I love Palestine ");
modified on Thursday, July 17, 2008 3:59 PM
|
|
|
|
|
lolla2006 wrote: i have a small project which is to create your own version of arralist in c# but of course without using the arraylist collection ...
That doesn't look like it should be an implementation of ArrayList at all, it looks like it should be an implementation of a linked list.
lolla2006 wrote: this is the initial scratch..please i need all help that you can offer me
how can i do this?
You write some code...
Is there anything specific that you have any problems with? Otherwise it's not really possible to give any specific advice.
Despite everything, the person most likely to be fooling you next is yourself.
|
|
|
|
|
yes i have a problem with deleting a range of nodes from specific index to another
while(1)
System.out.println("I love Palestine ");
|
|
|
|
|
That's pretty basic:
1. Locate the node before the range and the node after the range (just loop and count).
2. Make the node after the range the next node for the node before the range, and make the node before the range the previous node for the node after the range.
You have to check for two special cases, though. If the first node in the range is the first in the list, there is no node before, and you have to change the first variable of the list instead. If the last node in the range is the last node, there is no node after, and you have to change the last variable of the list instead.
Despite everything, the person most likely to be fooling you next is yourself.
|
|
|
|
|
i have finished every thing but i have three errors i dont know how to deal wiuth:
Error 1 'myArrayList1.Mylist.Contains(object)': not all code paths return a value
Error 3 Operator '>' cannot be applied to operands of type 'object' and 'object' <br />
how can i solve this
thnx 4 ur help
while(1)
System.out.println("I love Palestine ");
|
|
|
|