我用的是sqlserver ,现在有个已知的带参数的sql语句
如下:
insert into a(id,name......) values(:id,:name....)参数数量不定,名称也不定
请问如何将值写到参数中。望指点C#写就可以了。。

解决方案 »

  1.   

    谢了zgke,请问有没有直接用数组作为参数直接对应呢。
    比如把所有的值都放在一个数组里面,然后把数组作为参数呢?
    还有@参数和:参数有什么不同么?望指点!!
      

  2.   

    你定义字符串 然后组合到SQL中  
    这是最笨的方法 我暂时就是这样实现的!
      

  3.   

    哦,谢谢bgaidu。办法可行。还有其他的方法么?
      

  4.   

    params 关键字  可以实现呀
    名字可以才传参的时候自己实例化SqlParameter的实例中设定方法
    public int ExecuteNonQuery(string sql, params SqlParameter[] sqlparameters)
    {
        //sql处理
    }
      

  5.   

    调用
    StringBuilder sb = new StringBuilder();            sb.Append(" INSERT INTO ");
                sb.Append(" A ");
                sb.Append(" (ID,NAME,DEPTNM) ");
                sb.Append(" VALUES ");
                sb.Append(" (@ID,@NAME,DEPTNM) ");            ExecuteNonQuery(sb.ToString(), new SqlParameter("ID", value1), new SqlParameter("NAME", value2), new SqlParameter("DEPTNM", value3));如果不用SqlParameter类  可以和它的思路一样自己建个参数类也可以
      

  6.   

    string sql="insert into A(Id,name,deptnm) values(@id,@name,@dept)";
    //实例化三个参数
    SqlParameter []paras =new SqlParameter[3]
    {
       new Sqlparameter("@id",txtId.text),
       new Sqlparameter("@name",txtName.text),
       new Sqlparameter("@dept",txtDept.text)
    };
    sqlconnection  conn=new ....();
    conn.open();
    sqlCommand  cmd =new sqlCommand(sql,conn);
    cmd.parameters.addRange(paras);
    cmd.ExecuteNonQuery();
    conn.close();o 啦!