页面生命周期,数据库连接是否进入Page_Load

|| 目前,我有以下代码:
void Page_Load(object sender, System.EventArgs e)
 {       
       string connectionString = \"server=abc;database=abc;uid=abc;pwd=1234\";
       SqlConnection mySqlConnection = new SqlConnection(connectionString);
       string procedureString = \"Callin_Insert\";
       SqlCommand mySqlCommand = mySqlConnection.CreateCommand();
       mySqlCommand.CommandText = procedureString;
       mySqlCommand.CommandType = CommandType.StoredProcedure;
       mySqlCommand.Parameters.Add(\"@LVDate\", SqlDbType.DateTime).Value = DateTime.Now;
       mySqlCommand.Parameters.Add(\"@LVTime\", SqlDbType.DateTime).Value = DateTime.Now;
       mySqlCommand.Parameters.Add(\"@CuID\", SqlDbType.Int).Value = CustID;
       mySqlCommand.Parameters.Add(\"@Type\", SqlDbType.Int).Value = Keypress;
       mySqlConnection.Open();
       mySqlCommand.ExecuteNonQuery();
       SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter();
       mySqlDataAdapter.SelectCommand = mySqlCommand;
       mySqlConnection.Close();
}
基本上,我在page_load期间打开到数据库的连接。我也在page_load中关闭该连接。我的部分问题是CustID和Keypress没有通过,因为它们发生在页面生命周期的后期。打开连接,获取2个变量(当我由用户输入它们时),将它们传递到数据库并关闭连接的最佳方法是什么。 我尝试过的某项正在运行_OnLoad。但这也不起作用。 任何想法或建议,将不胜感激。     
已邀请:
        SqlConnection首先是IDisposible接口,这意味着使用这样的语句包装代码会更安全。
string connectionString = \"server=abc;database=abc;uid=abc;pwd=1234\";
using (SqlConnection mySqlConnection = new SqlConnection(connectionString))
{
    string procedureString = \"Callin_Insert\";
    SqlCommand mySqlCommand = new SqlCommand(procedureString, mySqlConnection);
    mySqlCommand.CommandType = CommandType.StoredProcedure;

    mySqlCommand.Parameters.Add(\"@LVDate\", SqlDbType.DateTime).Value = DateTime.Now;
    mySqlCommand.Parameters.Add(\"@LVTime\", SqlDbType.DateTime).Value = DateTime.Now;
    mySqlCommand.Parameters.Add(\"@CuID\", SqlDbType.Int).Value = CustID;
    mySqlCommand.Parameters.Add(\"@Type\", SqlDbType.Int).Value = Keypress;

    mySqlConnection.Open();
    mySqlCommand.ExecuteNonQuery();

    //i have no idea what does this mean, data adapter is for filling Datasets and DataTables
    SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter();
    mySqlDataAdapter.SelectCommand = mySqlCommand;
}
第二,我为您提供了使用SqlDataSourceObject控件的方法,该控件将使处理类似您的案例的工作变得更加容易。 它会知道如何处理尚未实现的Page.IsPostBack,但应该处理分页和其他所需的东西。     
        认为这里存在一些问题...首先,为什么要运行查询,然后将其传递给数据适配器?查询时,数据适配器将运行select命令。 我建议在您的aspx页面上创建一个SqlDataSource(而不是后面的代码),并将您的控件绑定到它。然后连接Selecting事件,并在其中填充参数。这应该在页面生命周期的稍后发生,因此将设置您的参数值。     

要回复问题请先登录注册