本帖最后由 NiuEs 于 2009-11-09 09:27:48 编辑

解决方案 »

  1.   

    代表参数,传入的就是你写的CInt(obj.emp_id)和 obj.emp_name
      

  2.   

    DB.AddParameter(Cmd, "@emp_name", obj.emp_name)--这个obj.emp_name是传给@emp_name值
    然后用
    Dim sqlStr As String
     sqlStr = "insert into emp (emp_id,emp_name,emp_birth) values(@emp_id,@emp_name,@emp_birth)"
      

  3.   

    SqlParameter[] parameters = {new SqlParameter("@emp_id", SqlDbType.NChar,10)}
    @emp_id是 parameters 的键 
    parameters[0]="";设定值,@emp_id代表的值就是你设定的那个
      

  4.   

    这是一个参数,如果你写过存储过程,就会知道,定义数据库变量是declare @emp_id varchar(20)
    declare @emp_name varchar(100) 类似这样的,因此,在C#中,所有的输入输出参数都必须加"@"以表示这是一个数据库变量。
      

  5.   


    declare @Paramtervarchar(20)
      set @Paramter = '参数'
      select * from talbe where Paramter = @res
    类似上面的,sql语句中的参数名都以@开头的DB.AddParameter(Cmd, "@emp_name", obj.emp_name)相当于
    declare @Paramtervarchar(20)
      set @Paramter = '参数'
    创建参数并设置参数的值
      

  6.   

    DB.AddParameter(Cmd, "@emp_id", CInt(obj.emp_id))  那意思就是AddParameter方法只有两个参数吗? CInt(obj.emp_id)其实只是"@emp_id"将要传入方法的值么?
      

  7.   

    在Sql Server的T-SQL语法中前面加一个@符号代表局部变量所以在用ADO.NET连接SQL Server数据库时使用一个@符号表示一个参数的占位符这里@emp_id表示要穿给emp_id字段的参数。你的DB不知道是个什么类,按道理SqlCommand对象有AddWithValue方法添加知如
    cmd.AddWithValue("@emp_id", txtemp_id.Text);
      

  8.   

    带参数的SQL语句.
    通俗点讲,如果你要保存的字符串含"'",
    那么 insert into tab(字段) values('abc'de')
    它在红色的"'"便结束了,会报语法错误.
    这样,通过@,把要传入的abc'de,作为一个整体,这样,就可以处理一些特殊字符了.
    当然,如你下面所写的,还需说明parameters....
      

  9.   

    SQL参数 改成C#语法是这样.string sqlStr = "server=.;uid=sa;pwd=;database=userlist";
    SqlConnection sqlcon = new SqlConnection(sqlStr);SqlCommand cmd = new SqlCommand();
    cmd.CommandText = "INSERT INTO emp (emp_id,emp_name,emp_birth) values(@emp_id,@emp_name,@emp_birth)";
    cmd.Parameters.Add("@emp_id", SqlDbType.Int).Value = obj.emp_id;
    cmd.Parameters.Add("@emp_name", SqlDbType.VarChar).Value = obj.emp_name;
    cmd.ExecuteNonQuery();