在SQL Server中,我有一个名为AppZip的db列,其类型为int。我有一个带5位数邮政编码的文本框。当我尝试保存时,我收到错误“输入字符串的格式不正确。”我糊涂了。我正在将“12345”的字符串表示形式转换为int类型,它是如何将数据库格式错误的?这是我的代码。
q.AppZip =Convert.ToInt32(txtAppZip.Text);
(我正在使用linq to sql ...)
编辑:这是因为我没有停止填充页面加载字段的方法在回发后执行。
答案 0 :(得分:2)
Convert.ToInt32()
引发了异常。在将Text属性传递给Trim()
之前,请检查Text属性的格式是否正确以及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
}
更多信息
答案 1 :(得分:0)
检查表定义中所有列的映射。它可能是表中抛出错误的其他列之一。运行SQL事件探查器以检查生成的SQL。
答案 2 :(得分:-1)
提出FormatException的唯一方法是将一些不可转换的字符与原始字符串相连。
确保你没有错误地输入任何字符并再试一次,这是我现在能看到的唯一合理解释