输入字符串格式不正确
本文关键字:不正确 格式 字符串 输入 | 更新日期: 2023-09-27 17:55:02
我是c#编程新手,我无法获得此代码。我得到的错误是
输入字符串格式不正确。
我知道这是一个重复的问题,但是到目前为止我所发现的,对我没有多大帮助。我正在使用下面的代码,以插入一些数据到一个mssql数据库。
public void btnAdauga_Click(object sender, EventArgs e)
{
try
{
using (SqlConnection con = new SqlConnection(cs))
{
con.Open();
SqlCommand cmd = new SqlCommand(insert, con);
cmd.Parameters.AddWithValue("@IDAutocar", txtID.Text);
cmd.Parameters.AddWithValue("@IDTipAutocar", txtIDTip.Text);
cmd.Parameters.AddWithValue("@TipAutocar", int.Parse(cmbTip.SelectedValue.ToString()));
int val = cmd.ExecuteNonQuery();
MessageBox.Show(val + "Autocarul a fost adaugat cu succes!");
con.Close();
this.Dispose();
}
}
catch (Exception er){MessageBox.Show(er.Message);}
}
插入语句:string insert = "INSERT INTO Autocare (IDAutocar, IDTipAutocar, TipAutocar) VALUES (@IDAutocar, @IDTipAutocar, @TipAutocar)";
错误是在这行代码:cmd.Parameters.AddWithValue("@TipAutocar", int.Parse(cmbTip.SelectedValue.ToString()));
谁能告诉我我错过了什么?由于
如果您的组合框包含int值作为字符串,则使用
int.Parse(cmbTip.Text);
如果需要选定文本的索引,则使用
int.Parse(cmbTip.SelectedIndex);
根据Yeldar的建议,我已经删除了int.Parse
,只使用combo.SelectedValue
,它工作了!
尝试使用Int。TryParse函数而不是Int。解析并处理该行之前的解析异常。这样的:
using (SqlConnection con = new SqlConnection(cs))
{
con.Open();
SqlCommand cmd = new SqlCommand(insert, con);
cmd.Parameters.AddWithValue("@IDAutocar", txtID.Text);
cmd.Parameters.AddWithValue("@IDTipAutocar", txtIDTip.Text);
int tipAutocar = 0;
if (int.TryParse(cmbTip.SelectedValue.ToString(), out tipAutocar))
{
//if successful
cmd.Parameters.AddWithValue("@TipAutocar", tipAutocar));
}
else
{
//if not successful, do sth else
}
int val = cmd.ExecuteNonQuery();
MessageBox.Show(val + "Autocarul a fost adaugat cu succes!");
con.Close();
this.Dispose();
}
- 调试适当的断点和步进代码,并在调试菜单中添加感兴趣的变量在"观察"窗口或寻找他们在"局部"窗口,而调试。[for example
cmbTip.SelectedValue.ToString()
] 其他人指出 - 对于
cmbTip
,即使选择了值,错误仍然存在,或者selectedValue
出现为NULL
,尝试使用SelectedText
cmbTip.SelectedValue.ToString()
可能是异常的原因。