我正在使用从Textboxes获取的数据更新访问数据库。如果我清除一个带字符串的文本框,那么更新工作正常,但是如果我清除一个带有整数的文本框,我会收到此错误信息
无法将参数值从String转换为Int32
这是我的代码:
cmd.Parameters.Add("@inOrOut", OleDbType.VarWChar).Value = tbPatientStatus.Text;
cmd.Parameters.Add("@BedID", OleDbType.Integer).Value = tbPatientBedID.Text;
从下面的评论中我试过这个没有成功
if (string.IsNullOrEmpty(tbPatientBedID.Text))
{
cmd.Parameters.Add("@BedID", OleDbType.Integer).Value = 0;
}
else
{
cmd.Parameters.Add("@BedID", OleDbType.Integer).Value = tbPatientBedID.Text;
}
答案 0 :(得分:0)
int? BedId = null;
int m_BedID = 0;
if(Int32.TryParse(tbPatientBedID.Text.Trim(), out m_BedID))
{
BedId = m_BedID;
}
cmd.Parameters.Add("@inOrOut", OleDbType.VarWChar).Value = tbPatientStatus.Text;
cmd.Parameters.Add("@BedID", OleDbType.Integer).Value = BedID;
添加参数类型OleDbType.Integer
时,提供的值类型也应为integer
..
答案 1 :(得分:0)
使用tryparse获取int值的小例子。
int value;
if !(int.TryParse(tbPatientBedID.Text, out value))
value = 0;
cmd.Parameters.Add("@BedID", OleDbType.Integer).Value = value;