maybe there is some caching involved, try SqlCommand cmd = new SqlCommand(procName, con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Clear();
cmd.Parameters.Add(pram);
cmd.ExecuteNonQuery();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Clear();
cmd.Parameters.Add(pram);
cmd.ExecuteNonQuery();
SqlParameter param = new SqlParameter("@Id", SqlDbType.Int);
param.Value = 1;移动到RunProc中,就不会有错误发生了!
cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(pram);
cmd.ExecuteNonQuery(); con.Close();
cmd.Parameters.Clear();
另:
如果我把Page_Load中的
SqlParameter param = new SqlParameter("@Id", SqlDbType.Int);
param.Value = 1;移动到RunProc中,就不会有错误发生了!
the following works for me
private static void Page_Load(object sender, System.EventArgs e)
{
SqlParameter param = new SqlParameter("@Id", SqlDbType.Int);
param.Value = 1; RunProc("test",param);
RunProc("test",param);
}
public static void RunProc(string procName, SqlParameter pram)
{
SqlConnection con = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
con.Open(); SqlCommand cmd = new SqlCommand(procName, con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(pram);
cmd.ExecuteNonQuery(); con.Close();
cmd.Parameters.Clear();
}