В своем проекте я пытаюсь написать код, который будет приятно понять.
В настоящее время я разделил свои функции доступа к данным в отдельный класс.
Однако я пытаюсь добиться того, чтобы ошибки возвращались к моей форме. Я не получаю это в настоящее время, и мне было интересно, почему.
В моей форме есть следующий код:
private void btn_Save_ItemClick(object sender, ItemClickEventArgs e)
{
if (dal.updatePerson(ObjectAfterSaving))
{
MessageBox.Show("Updated!");
}
else
{
MessageBox.Show("error");
};
}
В моем объекте dal (полученном из DataAccess_Person class
) у меня есть следующий метод:
public bool updatePerson(Person p)
{
conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["Database"].ConnectionString);
SqlCommand command = new SqlCommand(@"UPDATE Person
SET PersonName = @PersonName
WHERE PersonID = @PersonID", conn);
command.Parameters.Add("@PersonName", SqlDbType.VarChar).Value = p.Name
{
try
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
int a = command.ExecuteNonQuery();
conn.Close();
if (a > 0)
{
return true;
}
else
{
return false;
}
}
catch (SqlException ex)
{
ex.ToString();
return false;
}
}
}
Мой вопрос: скажем, если мой метод попадет в ловушку. Будет ли мой интерфейс (форма) показывать это (Sql Exception, например)? Или я просто получу «ошибку»? И если я просто получу ошибку, как я могу улучшить свой код, чтобы показывать исключение вместо ошибки?