繁体   English   中英

转换时输入字符串格式不正确,请在循环内将值插入数据库

[英]Input string was not in a correct format when converting, insert values into the database inside the loop

我正在将字符串“ 1234,5678,9101,1213 ”放入一个数组中,以便可以遍历该数组并将其数据类型为int的列名“ CardID ”插入数据库中。

错误信息:

异常详细信息:System.FormatException:输入字符串的格式不正确。

奇怪的是,即使有错误,也会将循环中的值插入到数据库表中。

文件CardsController.cs

//1234,5678,9101,1213,
string[] CardNumbers = model.CardsNumbers.Split(',');
foreach (string CardNumber in CardNumbers)
{
    Card Card = new Card();
    Card.CardID = Convert.ToInt32(CardNumber); //Input string was not in a correct format.
    Card.TaxPayerTIN = model.TaxPayerTIN;
    Card.PortID = model.PortID;
    Card.AddedUserID = 1;
    Card.AddedDateTime = DateTime.Now;

    db.Cards.Add(Card);
    db.SaveChanges();

}

您的字符串“ 1234,5678,9101,1213”以分隔符(“,”)结尾,因此String.Split返回的数组的最后一个元素将为空字符串。 将空字符串传递给Convert.toInt32是格式错误。

您可以通过指定S tringSplitOptions.RemoveEmptyEntries来避免此行为:

model.CardsNumbers.Split(',', StringSplitOptions.RemoveEmptyEntries);

RemoveEmptyEntries-返回值不包括包含空字符串的数组元素

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM