代码之家  ›  专栏  ›  技术社区  ›  Nagaraj Tantri

向SQL insert语句传递多个值

  •  0
  • Nagaraj Tantri  · 技术社区  · 14 年前

    有没有更好的方法使用DataSet和SQLDataAdapter?

    //函数将文本框值插入到表中

    public int createRecord(val1,val2,val3,....val23)
    {
       string query = "insert into tablename values (.23 values...)";
       sqlCommand command = new sqlCommand(query,connectionstring);
    ..
    }
    

    请建议我至少一个好的方法或给一个好的链接,可以解决我的问题。。

    2 回复  |  直到 8 年前
        1
  •  1
  •   dcp    14 年前

    如果您要插入一个记录,并且所有23个值都是必需的,那么没有更好的方法了。

    但是,最好使用存储过程并将参数传递给存储过程,而不是在应用程序中使用硬编码SQL,这通常是个坏主意。

    SqlCommand cmd  = new SqlCommand("YourSPName", conn);
    cmd.CommandType = CommandType.StoredProcedure;
    
    // add the parameters the SP needs
    cmd.Parameters.Add(new SqlParameter("@Parm1", parm1Value));
    cmd.Parameters.Add(new SqlParameter("@Parm2", parm2Value));
    .
    .
    
    // execute the SP
    cmd.ExecuteNonQuery();
    
        2
  •  0
  •   Michael Pakhantsov    14 年前

    您可以将函数重新写入以下内容,并传递一个值列表,而不是23个参数。

    将函数替换为

    public int createRecord(your_type[] list)
    {
       // .. building insert statement from the list of values.
    }