0 голосов
спросил от в категории CASPNET
Первый шаг - понять код.

Тот, который не работает, имеет
if(ds.Tables.Count>0)

, а тот, который работает, имеет
if(dt.Rows.Count > 0)


Вам нужно проверить, существуют ли таблицы, и THEN также проверить, существуют ли строки.

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
0 голосов
ответил от
DataSet состоит из DataTables , поэтому вам нужно указать таблицу следующим образом:

ds.Tables["TableName"].Count > 0


или используя индекс следующим образом:

ds.Tables[0].Count > 0

br>
В то время как то, что работает, я по-прежнему рекомендую вам DataTable вместо DataSet , так как вы имеете дело только с одной таблицей базы данных. Кроме того, при создании objects можно использовать ресурсы, такие как SqlConnection , SqlCommand и SqlDataAdapter ) при использовании чтобы объекты были правильно размещены и закрыты после их использования. Вот краткий пример:

public DataTable Userlogin(Users objlogin){        DataTable dt = new DataTable();    string sqlStatement = "SELECT * FROM User_details WHERE [Login Id]=@loginid AND [Password]=@password";              using(SqlConnection connection = new SqlConnection(GetConnectionString())){             using(SqlCommand cmd = new SqlCommand(sqlStatement ,connection)){                   cmd.CommandType = CommandType.Text;                     cmd.Parameters.AddWithValue("@loginid", objlogin.loginId);             cmd.Parameters.AddWithValue("@password", objlogin.Password); using(SqlDataAdapter da = new SqlDataAdapter(cmd)){ da.Fill(dt); }          }         } return  dt; }


Затем на вашем бизнес-уровне вам нужно будет вернуть DataTable так что вы можете сделать что-то подобное в своем слое пользовательского интерфейса:

BAL objBAL = new BAL();             DataTable dt = objBAL.Userlogin(objuser);             if(dt.Rows.Count > 0)             {                 Session["User"] = loginid.Text;                 Response.Redirect("~/Transactions.aspx");             }             else             {                 Response.Write("<script>alert('Invalid Credentials!')</script> ");             }



br> Обратите внимание , что мы теперь используем dt.Rows.Count , чтобы проверить, возвращает ли ваш запрос какие-либо данные.

Категории

Добро пожаловать на сайт DraftingCode Q&A (ИТ ответы), где вы можете задавать вопросы и получать ответы от других членов сообщества.

Связанных вопросов не найдено

...