第一个(代码类型 1)只是使用SqlCommand
和调用存储过程并在插入单击事件处理程序下调用该插入方法的基本插入。
第一个
代码类型 1:
public string InsertUserInformation()
{
SqlConnection con = new SqlConnection(ConnectionString);
con.Open();
SqlCommand cmd = new SqlCommand("sp_userinformation", con);
cmd.CommandType = CommandType.StoredProcedure;
try
{
cmd.Parameters.AddWithValue("@UserName", TextBox1.Text);
cmd.Parameters.AddWithValue("@Password", TextBox2.Text);
cmd.Parameters.AddWithValue("@FirstName", TextBox3.Text);
cmd.Parameters.AddWithValue("@LastName", TextBox4.Text);
cmd.Parameters.AddWithValue("@Email", TextBox5.Text);
cmd.Parameters.AddWithValue("@PhoneNo", TextBox6.Text);
cmd.Parameters.AddWithValue("@Location", TextBox7.Text);
cmd.Parameters.AddWithValue("@Created_By", TextBox8.Text);
cmd.Parameters.Add("@ERROR", SqlDbType.Char, 500);
cmd.Parameters["@ERROR"].Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
string strMessage = (string)cmd.Parameters["@ERROR"].Value;
con.Close();
return strMessage;
}
catch (Exception ex)
{
throw ex;
}
finally
{
cmd.Dispose();
con.Close();
con.Dispose();
}
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
InsertUserInformation();
}
第二个(代码类型2):
http ://www.aspdotnet-suresh.com/2010/05/introduction-to-3-tier-architecture-in_17.html
public string InsertUserInformation(BEL objBELUserDetails)
{
SqlConnection con = new SqlConnection(ConnectionString);
con.Open();
SqlCommand cmd = new SqlCommand("sp_userinformation", con);
cmd.CommandType = CommandType.StoredProcedure;
try
{
cmd.Parameters.AddWithValue("@UserName",objBELUserDetails.UserName);
cmd.Parameters.AddWithValue("@Password", objBELUserDetails.Password);
cmd.Parameters.AddWithValue("@FirstName", objBELUserDetails.FirstName);
cmd.Parameters.AddWithValue("@LastName", objBELUserDetails.LastName);
cmd.Parameters.AddWithValue("@Email", objBELUserDetails.Email);
cmd.Parameters.AddWithValue("@PhoneNo", objBELUserDetails.Phoneno);
cmd.Parameters.AddWithValue("@Location", objBELUserDetails.Location);
cmd.Parameters.AddWithValue("@Created_By", objBELUserDetails.Created_By);
cmd.Parameters.Add("@ERROR", SqlDbType.Char, 500);
cmd.Parameters["@ERROR"].Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
string strMessage = (string) cmd.Parameters["@ERROR"].Value;
con.Close();
return strMessage;
}
catch (Exception ex)
{
throw ex;
}
finally
{
cmd.Dispose();
con.Close();
con.Dispose();
}
}
这也是一个插入,但使用 BEL、BLL、DAL,最后在 PL 的按钮插入事件处理程序下调用 BLL 层的 insert_method。
据我所知,3 层有助于将代码组织成不同的层,这样维护会更容易,并且还有其他 x 因素。
但是,第一个(代码类型 1)对我来说似乎要简单得多。
所以,请告诉我,
1.当第一个更简单和容易时,他们为什么会提到第二个?
2. 两者之间的性能如何,哪一个更快?
提前致谢。