Похоже, вы используете библиотеку «родной базы». Код мне подходит. Можете ли вы также отправить стиль View?
Также, в чем проблема? Вы вообще не можете видеть кнопки или вы не можете вызвать связанное действие здесь?
Не используйте инициализацию конструктора для этого.
DataTable dt = new DataTable();
using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
using (var cmd = new SqlCommand(" SELECT FName" +
" FROM EmployeeTable " +
" WHERE EmployeeId = @empId",
con))
{
cmd.Parameters.Add(new SqlParameter("@empId",empId));
try
{
con.open();
dt.Load(cmd.ExecuteReader());
}
catch(Exception) //BAD BAD BAD!!! Why are you doing this!
{
}
}
return dt;
Также почему вы ловите все исключения и отбрасываете их, это ужасно. Если у вас есть исключение, которое, по вашему мнению, будет распространено, сначала посмотрите, можете ли вы реорганизовать свой код, чтобы проверить его на входные значения, которые могли бы вызвать его, а не набросать вообще (возможно, даже выбросить ArgumentException
самостоятельно) , и если вы не можете этого сделать, проверьте это конкретное исключение, а не все возможные.
Нельзя использовать инициализатор объектов для чего-либо другого, кроме присвоения свойств, поэтому вы должны переписать свой код следующим образом (только соответствующая часть здесь):
...
using (var cmd = new SqlCommand(" SELECT FName" +
" FROM EmployeeTable " +
" WHERE EmployeeId = @empId",
con))
{
cmd.Parameters.Add(new SqlParameter("@empId", empId));
...
Ваш второй оператор использования закрывается перед попыткой catch. Поэтому, как только поймается попытка catch, блок использования уже закрыт. Поэтому параметры находятся в неправильной области.
catch(SqlException ex)
и введитеthrow new NotImplmentedException("Error logging not added", ex);
в тело. Таким образом, если исключение произойдет и вы забудете обновить свой код, вы все равно можете получить уведомление о том, что это произошло. – Scott Chamberlain 19 August 2013 в 16:05//(Snip) log the execption
к вашему вопросу, если вы действительно регистрируете ошибку, или вы получите от вас все прыгающие вверх и вниз, чтобы выбросить исключение. Эта ошибка распространена в новых программах, поэтому многие люди уходят с пути, чтобы разбить эту дурную привычку, прежде чем она начнется, если они ее заметят. Показывая, что вы регистрируетесь, но не включили его в вопрос, люди вас не будут беспокоить (я также рекомендую отредактировать ваш оригинальный вопрос) – Scott Chamberlain 19 August 2013 в 16:09