我正在标记一些代码,但无法理解为什么此错误不断抛出(相同的代码在其他瞳孔解决方案上也起作用。这是一个简单的添加客户端表单。试图将详细信息添加到文本文件中。错误“输入字符串为格式不正确”在点击添加按钮时一直显示。 所有帮助表示赞赏 代码如下所示:
if (File.Exists("CompetitorDataFile.txt"))
{
string[] arr =
File.ReadLines("CompetitorDataFile.txt").ToArray();
I = arr.Length;
ID = I + 1;
textBox2.Text = Convert.ToString(ID);
for (int z = 0; z < arr.Length; z++)
{
string[] arr2 = arr[z].Split('~');
if (FrmAdd.ID == Convert.ToInt32(arr2[1]))
{
valid2 = false;
MessageBox.Show("Unique ID needed",
"Error");
}
}
}
else
{
ID = I;
textBox2.Text = Convert.ToString(ID);
}
答案 0 :(得分:0)
我对提供的代码进行了一些小的更改,并执行了您遇到错误的核心区域。
我不确定您输入的字符串数组如何? 两种情况下
1-包含字符串 “ ba〜7U”,“ m4〜ro5” -转换失败
仅2个数字 “ 01XX〜78”, -转换成功
( “ 01XX〜70000000008”, ,它无法通过其int
类型失败,但超出了int
的限制)
static void test()
{
int ID, I = 0; int SomeValue = 0;
//if (File.Exists("CompetitorDataFile.txt"))
//{
string[] arr = new string[] { "01XX~78", "ba~7U", "m4~ro5" };
I = arr.Length;
ID = I + 1;
var ss = Convert.ToString(ID);
int val=0;
for (int z = 0; z < arr.Length; z++)
{
string[] arr2 = arr[z].Split('~');
if (SomeValue == checkConvertion(arr2[1] ))
{
var valid2 = false;
}
}
//}
//else
//{
// ID = I;
// var res = Convert.ToString(ID);
//}
}
static int checkConvertion(string stringInput)
{
int val;
var convertionResult = int .TryParse(stringInput, out val);
// int.Parse(stringInput); -- also you can use this
return convertionResult ? val : 0;
}
如果int
数据类型的范围超过int. Max
(对不起,您无法编辑代码,命名命名错误以及对很多区域进行注释,我只是想向您展示转换方面)