oledb异常在标准表达式中的c#数据类型不匹配中未处理

时间:2014-03-27 17:26:56

标签: c# database oledb

foreach (object selectedItem in lstProjectMemberID.SelectedItems)
{
    DataRowView dr = (DataRowView)selectedItem;
    String result = dr["user_id"].ToString();
    int intResult = int.Parse(result);

    cmd.CommandText = "INSERT INTO project_users(project_id,user_id) VALUES (@newProjID.Text,@userID)";
    cmd.Parameters.Add(newProjID.Text, OleDbType.Integer).Value = newProjID.Text;
    cmd.Parameters.AddWithValue("@userID", intResult);

    cmd.ExecuteNonQuery();

 }

我有这个代码,我在标准表达式中得到错误数据类型不匹配。在这部分cmd.ExecuteNonQuery(); :(我会怎么做?

我认为我的插入查询命令错误,因为有了结果

1 个答案:

答案 0 :(得分:1)

看起来很奇怪,将参数名称从@newProjID.Text更改为@newProjID

cmd.CommandText = "INSERT INTO project_users(project_id,user_id) VALUES (@newProjID,@userID)";
cmd.Parameters.Add("@newProjID", OleDbType.Integer).Value = newProjID.Text;

但如果newProjID.Text是一个字符串,您应首先将其解析为int

cmd.Parameters.Add("@newProjID", OleDbType.Integer).Value = int.Parse(newProjID.Text);