比如有以下一句:
Sqlcommand obj = ....;
obj.COmmandText = "INSERT INTO TEST" + "VALUES" +"@ID,@NAME,@Role";
请问,在此句中 @什么意思?
接下来怎么赋值?
各个值又代表什么含义?
小弟献出30分,不知能否解决....

解决方案 »

  1.   

    @是SQL里面的变量定义必用的,算是一个声明符号
    还有这条语句也是不能这么写的,应该把@ID,@NAME,@Role换成具体的值
    具体可加我QQ271341573
      

  2.   

    @ID,@NAME,@Role 是sqlparameter 就是用传参的方式生成sql语句 这样的做到好处是比较灵活,部分防止sql注入。 
      

  3.   

    @ID,@NAME,@Role 是定义的SQL变量
    obj.Parameters.AddWithValue("@ID",123);
    obj.Parameters.AddWithValue("@NAME","姓名");这是赋值语句
      

  4.   

    @ID,@NAME,@Role 是sqlparameter 就是用传参的方式,你可以new三个对应的SQL变量,用传参是为了v防止sql注入。 
      

  5.   

    obj.InsertCommand.Parameters.Add("@ID",,MySqlDbType.Int16, 4, "Id");
    如果是上面那样的话,这四个参数是什么意思啊??
    放心,多贡献者多得分...
      

  6.   

    using(SqlConnection Conn = new SqlConnection(你的连接字符串))
    {
    SqlCommand Cmd = new SqlCommand(Conn);
    //这段SQL语句是用传参的形式
    string strSql = "INSERT INTO TEST(id,name,role) VALUES (@ID,@NAME,@Role)";
    Cmd.CommandText = strSql;
    //以下为SqlCommand对象的参数指派值,注意顺序一定要和SQL语句中参数顺序一致
    Cmd.Parameters.Add(new SqlParameter("@ID","Id"));
    Cmd.Parameters.Add(new SqlParameter("@Name","犀利哥"));
    Cmd.Parameters.Add(new SqlParameter("@Role","管理员"));
    //整理出的Sql语句其实就是 INSERT INTO TEST(id,name,role) VALUES ('Id','犀利哥','管理员')
    //这样做可以防止SQL注入式攻击
    Cmd.ExcuteNonQuery();
    }
      

  7.   

    #3楼 得分:0回复于:2010-04-08 15:48:16@ID,@NAME,@Role 是定义的SQL变量
    obj.Parameters.AddWithValue("@ID",123);
    obj.Parameters.AddWithValue("@NAME","姓名");这是赋值语句 
     
    也可以不用@直接把值赋上去
      

  8.   

    @ID,@NAME,@Role是参数
    obj.Parameters.Add("@ID",SqlDbType.Nvarchar,10);//定义参数
    obj.Parameters["@ID"].value="001";//赋值这些都是ado.net的知识,建议楼主看一下ado.net
      

  9.   

    SQLSERVER:@是参数符号。Oralce用的是 :MySql用的是:?
      

  10.   

    @是sql语句参数化,能有效防止sql注入,不过还是推荐存储过程,因为执行存储过程和执行sql语句的权限可是不一样的,
    赋值同楼上
    obj.Parameters.Add("@ID",SqlDbType.Nvarchar,10);//定义参数
    obj.Parameters["@ID"].value="001";//赋值