最初のもの (コード タイプ 1) は、SqlCommand
ストアド プロシージャを使用して呼び出し、Insert Click Event Handler の下でその挿入メソッドを呼び出す基本的な挿入です。
最初の1つ
コード タイプ 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 つ目 (コード タイプ 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 を使用し、最後に BLL レイヤーの insert_method が PL のボタン挿入イベント ハンドラーの下で呼び出されます。
私の知る限り、3層はコードをさまざまなレイヤーに整理するのに役立ちます。これにより、メンテナンスが容易になり、他のx要因が存在します。
しかし、最初のもの (コード タイプ 1) は、私にははるかに単純なようです。
それで、私にアドバイスしてください、
1.最初のものはよりシンプルで簡単なのに、なぜ彼らは2番目のものを参照するのでしょうか?
2.パフォーマンスについては、どちらが速いですか?
前もって感謝します。