代码之家  ›  专栏  ›  技术社区  ›  Dmitris

要重用SqlCommand吗?

  •  57
  • Dmitris  · 技术社区  · 17 年前

    SqlCommand 实例并应用更新的参数,以便在同一函数内再次调用存储过程。

    myConStr = ConfigurationManager.ConnectionStrings["MyConnString"].ConnectionString;
    myConn = new SqlConnection(myConStr);
    myCommand = new System.Data.SqlClient.SqlCommand("team5UserCurrentBooks3", myConn); 
    myCommand.CommandType = CommandType.StoredProcedure;
    myCommand.Parameters.AddWithValue("@book_id", bookID);
    myCommand.Parameters.AddWithValue("@user_id", userID);
    
    try
    {
        myConn.Open();
        myCommand.ExecuteNonQuery();
    

    MyCommand 的参数并再次调用存储过程?

    2 回复  |  直到 11 年前
        1
  •  51
  •   Stephen Wrighton    11 年前

    myConStr = ConfigurationManager.ConnectionStrings["MyConnString"].ConnectionString;
    myConn = new SqlConnection(myConStr);
    myConn.Open();
    
    myCommand = new System.Data.SqlClient.SqlCommand("team5UserCurrentBooks3", myConn); 
    myCommand.CommandType = CommandType.StoredProcedure;
    myCommand.Parameters.AddWithValue("@book_id", bookID);
    myCommand.Parameters.AddWithValue("@user_id", userID);
    myCommand.ExecuteNonQuery();
    
    myCommand.Parameters.Clear();
    myCommand.CommandText= "NewStoredProcedureName";
    myCommand.CommandType = CommandType.StoredProcedure;
    myCommand.Parameters.AddWithValue("@foo_id", fooId);
    myCommand.Parameters.AddWithValue("@bar_id", barId);
    mycommand.ExecuteNonQuery();
    
    myCommand.Parameters.Clear();
    myCommand.CommandText = " SELECT * FROM table1 WHERE ID = @TID;"
    myCommand.CommandType = CommandType.Text;
    myCommand.Parameters.AddWithValue("@tid", tId);
    SqlReader rdr;
    rdr = myCommand.ExecuteReader();
    
        2
  •  11
  •   Joel Coehoorn    7 年前

    myConStr = ConfigurationManager.ConnectionStrings["MyConnString"].ConnectionString;
    using (var cn = new SqlConnection(myConStr) )
    using (var cmd = new SqlCommand("team5UserCurrentBooks3", cn) ) 
    {
        cmd.CommandType = CommandType.StoredProcedure; 
        cmd.Parameters.Add("@user_id", SqlDbType.Int).Value = userID;
        cmd.Parameters.Add("@book_id", SqlDbType.Int);
        cn.Open();
    
        for(int i = 0; i<10; i++)
        {
            cmd.Parameters["@book_id"].Value = i;
            cmd.ExecuteNonQuery();
        }
    }
    

    这将运行查询10次并使用相同的 user_id 每次执行时,都会更改 book_id The using