我是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()));
任何人都可以告诉我我错过了什么吗?感谢
答案 0 :(得分:0)
尝试使用Int.TryParse函数而不是Int.Parse,并在该行之前处理解析异常。像这样:
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();
}
答案 1 :(得分:0)
如果你的组合框包含int值作为字符串,那么使用
int.Parse(cmbTip.Text);
如果您想要所选文本的索引,请使用
int.Parse(cmbTip.SelectedIndex);
答案 2 :(得分:0)
根据Yeldar的建议,我已移除int.Parse
并仅使用combo.SelectedValue
并且有效!
答案 3 :(得分:0)
cmbTip.SelectedValue.ToString()
] cmbTip.SelectedValue.ToString()
可能是例外的原因。cmbTip
即使在选择错误仍然存在的值,或selectedValue
为NULL
之后,尝试使用SelectedText