Первый (тип кода 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();
}
}
это также вставка, но использует Бел, BLL, DAL и, наконец, метод insert_method слоя BLL вызывается под обработчиком событий вставки кнопки PL.
Насколько я знаю, 3 уровня помогает упорядочить код на разные уровни, так что обслуживание будет проще и другие факторы x есть.
Но, Первый (Код Тип 1), кажется, намного проще для меня.
Итак, пожалуйста, сообщите мне,
1. Почему они будут ссылаться на Второе, когда первый проще и проще?
2. Что относительно производительности среди двух, какая из них быстрее?
Заранее спасибо.
Скриншоты кода раздражают. Используйте реальные блоки кода, которые, по крайней мере, имеют подсветку синтаксиса. – millimoose
Что касается производительности: код вверх и оба? (Не вижу невидимого Я говорю «не одно, что имеет значение».) – millimoose
Также первый может показаться простым и легким, но также это означает, что нигде в вашем приложении не определена ваша модель данных. Второй используется, потому что разные проблемы должны обрабатываться на разных уровнях приложения, а на языке без средств метапрограммирования это, к сожалению, означает, что в слоях в некоторых случаях не хватает каких-либо параметров делегирования. – millimoose