string sqlStr = "insert T_qixie(qxlx) values(@qxlx";正确
 string sqlStr = "insert T_qixie(qxlx) values(@qxlx) where qxbh=@qxbh";错误
 错误信息,我使用的是参数化查询,不知道什么原因不可是参数化查询的时候不可以使用where吧!
 还有我使用string sqlStr = "update T_qixie set qxlx=@qxlx";数据库内容不被设置相应内容
键字 'where' 附近有语法错误。 
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 关键字 'where' 附近有语法错误。源错误: 行 33:                 command.Parameters[0].Value = ddlType.SelectedValue;
行 34:                 command.Parameters[1].Value = Convert.ToInt32(lbbh.Text);
行 35:                 command.ExecuteNonQuery();
行 36:             }
行 37:         } 

解决方案 »

  1.   

      command.Parameters.Add("@qxlx", SqlDbType.VarChar);
      command.Parameters.Add("@qxbh", SqlDbType.Int, 4);
      command.Parameters[0].Value = ddlType.SelectedValue;
      command.Parameters[1].Value = Convert.ToInt32(lbbh.Text);
    定义了
      

  2.   

    insert为什么不能使用where? 参数化查询的原因吗?
      

  3.   

    insert 可select * from tb where 条件
    查询插入
    update T_qixie set qxlx=@qxlx单步看看值,在SQL SERVER中执行看看
      

  4.   

    在sql server中可以执行! //获取ListView中的DropDownList控件
            DropDownList ddlType = (DropDownList)ListView1.FindControl("ddlType");
            Label lbbh = (Label)ListView1.FindControl("qxbhLabel1");
            /*将选择的项更新会数据库*/
            //string sqlStr = "update T_qixie set qxlx=@qxlx";
            string sqlStr = "insert into T_qixie(qxlx) values(@qxlx)";
            using (SqlConnection connection = new SqlConnection(System.Web.Configuration.WebConfigurationManager.AppSettings["Conn"].ToString()))
            {
                connection.Open();
                using (SqlCommand command = new SqlCommand(sqlStr, connection))
                {
                    command.Parameters.Add("@qxlx", SqlDbType.VarChar);
                    command.Parameters.Add("@qxbh", SqlDbType.Int, 4);
                    command.Parameters[0].Value = ddlType.SelectedValue;
                    command.Parameters[1].Value = Convert.ToInt32(lbbh.Text);
                    command.ExecuteNonQuery();
                }
            }
    我是在ListView控件中的ListView1_Item_Updating事件中写的,但是每次执行之后ListView都会增加一行!
      

  5.   

    如果insert 想要加判断可以配合
    if exists (select 1 From BA_District WHere id=1)
    begin
    update BA_District set cDCCode=cDCCode WHere id=1
    end
    else
    begin
    insert into BA_District(cDCCode) values(1)
    end
      

  6.   

    可以的,不用写存储过程,sql可以直接执行的,可注意的是,转成字符串时,行与行之间要么用\r\n分开,要么用空格格开