KyKiske22 2016-08-01 05:04 采纳率: 0%
浏览 1370
已结题

求助!为什么update时提示错误“@Id必须声明标量变量

源码如下:

    Dao层 SqlHelper.cs:
 public class SqlHelper
    {
         public static int ExecuteNonQuery(string sql, params SqlParameter[] parameters)
    {
        String connStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
        SqlConnection conn = new SqlConnection(connStr);
        conn.Open();
        SqlCommand cmd = conn.CreateCommand();
        cmd.CommandText = sql;
        foreach (SqlParameter parameter in parameters)
        {
            cmd.Parameters.Add(parameter);
        }
        return cmd.ExecuteNonQuery();
    }
}



         服务层 Service.cs   :
          public static int dataUpdate(int i,params Object[] o)
            {
        String strsql = "Update Device set TName = @TName Where Id = @Id ";
        SqlHelper.ExecuteNonQuery(strsql,
           new SqlParameter("@Id", i),
           new SqlParameter("@TName", o[0]));
        int result = SqlHelper.ExecuteNonQuery(strsql);
        return result;
    }

        主窗体按钮:
        private void btnUpdate_Click(object sender, EventArgs e)
    {
        MessageBox.Show(pdtp.Value.ToString("yyyy/MM/dd"));
        Service.dataUpdate(
            Convert.ToInt32(textBox1.Text),
            NameText.Text
            );
}
服务层的内容使用Insert就没问题,为什么update就报错了?
  • 写回答

3条回答 默认 最新

  • threenewbee 2016-08-01 05:55
    关注

    检查下字段类型是否匹配,id是整数么?另外查询的id对应的记录是否存在。

    评论

报告相同问题?

悬赏问题

  • ¥30 求给定范围的全体素数p的(p-2)的连乘积
  • ¥15 VFP如何使用阿里TTS实现文字转语音?
  • ¥100 需要跳转番茄畅听app的adb命令
  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥50 opencv4nodejs 如何安装
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页