Reputation:
I have just started programming in C#. I am trying to convert a string to int. Like this:
int.Parse(textBox1.Text);
This is working fine when I enter a value but this is giving me exception when nothing is entered and I press the button. What should I do? Is there a function to solve this? Thanks
Upvotes: 3
Views: 645
Reputation: 1
Put this following code under your button event. It will make sure that the text/numbers entered into the textbox are able to be converted into an integer. Also, it will make sure that the textbox has numbers/text entered.
if (textBox1.Text != "")
{
try
{
Convert.ToInt32(textBox1.Text);
}
catch
{
/*
Characters were entered, thus the textbox's text cannon be converted into an integer.
Also, you can include this line of code to notify the user why the text is not being converted into a integer:
MessageBox.Show("Please enter only numbers in the textbox!", "PROGRAM NAME", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
*/
}
}
/*
else
{
MessageBox.Show("Please enter numbers in the textbox!", "PROGRAM NAME", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
*/
Upvotes: 0
Reputation: 3360
This is simple. You can do this on your button click event:
int number;
if (int.TryParse(textbox1.Text, out number))
{
// number is an int converted from string in textbox1.
// your code
}
else
{
//show error output to the user
}
Upvotes: -1
Reputation: 108
Try below given solution
<script type="text/javascript">
function myFunction() {
alert('Please enter textbox value.');
}
</script>
And in the button click event use below given logic.
if (TextBox1.Text == "")
{
//Call javascript function using server side code.
ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "myFunction()", true);
}
else
{
int value;
value = int.Parse(TextBox1.Text);
}
Upvotes: -1
Reputation: 1579
One way to approach this is by using int.tryParse()
instead of just int.Parse()
. You can then check the result to see if the input was in the correct format.
Here is a sample:
int userInput;
if(!int.TryParse(textBox1.Text, out userInput))
{
//error in input here
}
After executing, if int.TryParse() returns true, then you will have a valid value in the userInput
variable.
Alternatively you can wrap it in a try-catch, but it is better to attempt the parse and handle it without exceptions if possible.
Upvotes: 0
Reputation: 101681
Use int.TryParse
instead, it doesn't throw exception if the parsing fails.
Converts the string representation of a number to its 32-bit signed integer equivalent. A return value indicates whether the conversion succeeded.
int number;
bool isValid = int.TryParse(textBox1.Text, out number);
if(isValid)
{
// parsing was successful
}
Upvotes: 5