保存到数据库时,输入字符串的格式错误不正确
问题描述:
在SQL Server中,我有一个名为AppZip的db列,其类型为int。我有一个5位数的邮政编码的文本框。当我尝试保存时出现错误“输入字符串格式不正确”。我很困惑。我将“12345”的字符串表示形式转换为int类型,它如何是数据库的错误格式?这是我的代码。保存到数据库时,输入字符串的格式错误不正确
q.AppZip =Convert.ToInt32(txtAppZip.Text);
(我使用LINQ to SQL的...)
编辑:这是因为我没有停止填充从后执行回页面加载领域的方法。
答
此外,您还可以使用
异常正由Convert.ToInt32()
抛出。检查Text属性的格式是否正确,然后将该属性的Trim()
传递给Convert.ToInt32()
。
string appZipText = txtAppZip.Text.Trim();
if (!string.IsNullOrEmpty(appZipText))
{
q.AppZip = Convert.ToInt32(appZipText);
}
此外,您还可以使用
Int32.TryParse()
在转换之前检查字符串的有效性。
int appZip;
string appZipText = txtAppZip.Text.Trim();
if(!string.IsNullOrEmpty(appZipText) &&
Int32.TryParse(appZipText.Trim(),NumberStyles.Integer,CultureInfo.CurrentCulture, out appZip))
{
// Valid format
// Use or assign converted value
q.AppZip = appZip;
}
else
{
// Cannot convert to Int32
}
更多信息
答
引发FormatException的唯一方法是将一些不可转换的字符拼接到原始字符串。
确保你没有输入任何错误字符,然后再试一次,那是唯一合理的解释,我可以看到现在
答
检查所有列的映射在你的表定义。它可能是抛出错误的表中的其他列之一。运行SQL Profiler来检查生成的SQL。
感谢您的详细回复。 – 2011-02-07 19:53:15