我已经尝试了很长时间来转换从我的asp形式的输入框中取出的字符串并将其转换为整数。
然后,这个整数变量将用于我计划的数据库操作。
以下是我的尝试:
string mytxtCHI = txtID.Text;
int @CHI = Convert.ToInt16(mytxtCHI);
错误:
System.FormatException {“输入字符串的格式不正确。”}
我尝试过的事情:
- string mytxtCHI = txtID.Text;
int myNewID=(Int32.Parse(txtID.Text));
谢谢您的时间:)
答案 0 :(得分:1)
你应该使用tryparse:
string mytxtCHI = txtID.Text;
int number;
bool result = Int32.TryParse(mytxtCHI , out number);
if (result)
{
Console.WriteLine("Converted '{0}' to {1}.", mytxtCHI , number);
}
else
{
if (value == null) value = "";
Console.WriteLine("Attempted conversion of '{0}' failed.", mytxtCHI );
}
答案 1 :(得分:1)
你的方式是正确的,但你应该做些什么来避免错误
int myNewID = 0;
if(int.TryParse(txtID.Text, out myNewID))
{
//your code here
}
else
{
//your error handling here
}
答案 2 :(得分:1)
在Visual Studio中的行上放置一个断点。在调试模式下,运行到断点,将鼠标悬停在txtID.Text
上以查看其中的内容。
在页面生命周期中,您是否正在检查此值?在Page Init之后检查它。检查HttpRequest.Form以查看线路上的内容。
答案 3 :(得分:0)
您应该使用Int.TryParse
,并在值不是有效整数时处理大小写。
string mytxtCHI = txtId.Text;
int val;
if (!int.TryParse(mytxtCHI, out val))
{
// error here, value was not a valid integer.
}
// here, val contains the value, expressed as an integer.
答案 4 :(得分:0)
使用观察窗口或System.Diagnostics.Debug.WriteLine(mytxtCHI)
检查您传递的值是什么,是否为空白?