如何在C#中将字符串转换为整型?

11

我从名为txtLastAppointmentNo的文本框中获取了一个字符串值,我想将其转换为int,并使用Linq to sql将其存储在数据库中,但是我遇到了错误“输入字符串的格式不正确”。

我的输入字符串是2。

我的代码是:

      objnew.lastAppointmentNo=Convert.ToInt32(txtLastAppointmenNo.Text);
请指出我的错误。

2
你需要向我们展示导致错误的输入字符串! - Gabe
我已经在代码中写了.text,但仍然存在问题......这个错误让我疯狂,我不知道哪里出了问题。 :( - Nauman.Khattak
1
使用调试器查看txtLastAppointmentNo.Text的实际值。我猜想它并不是你所认为的那样,可能是一个空字符串。 - Kent Boogaart
@kent 我已经在数据库表中允许 null,所以那不是问题。 - Nauman.Khattak
@lasse 我已经尝试了所有可能的方法,但这里并不是这种情况...我不知道问题出在哪里... - Nauman.Khattak
显示剩余3条评论
3个回答

14
假设你正在使用WebForms,那么你只需要访问文本框的值而不是文本框本身:

假设您正在使用WebForms,则只需访问文本框的值,而不是文本框本身:

objnew.lastAppointmentNo = Convert.ToInt32(txtLastAppointmenNo.Text);

或者如果您正在引用HTML控件,则:

objnew.lastAppointmentNo = Convert.ToInt32(Request["txtLastAppointmenNo"]);

2
并建议进行某种形式的验证(例如,正则表达式验证器) - StuartLC
抱歉我忘记在问题中输入“.Text”。我已经在代码中完成了它,但仍然存在错误。 - Nauman.Khattak
@nonnb +1,好主意! @Nauman - 你是否在该代码行上设置断点并验证输入? - Dustin Laine

4
您也可以选择使用int.Parseint.TryParseConvert.ToInt32函数。
//int.Parse
int num = int.Parse(text);
//Convert.ToInt32
int num = Convert.ToInt32(text);

//int.TryParse
string text1 = "x";
        int num1;
        bool res = int.TryParse(text1, out num1);
        if (res == false)
        {
            // String is not a number.
        }

0

对我来说,答案是一个空字符串!

objnew.lastAppointmentNo=Convert.ToInt32(txtLastAppointmenNo.Text); 中,txtLastAppointmenNo.Text 是一个空值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接