2015-04-07 4 views
0

Итак, я отправляю электронное письмо на параметр моего метода checkEmail, который находится в моем классе аутентификации.Ошибка при подсчете строк

authentication.cs:

public int checkEmail(string email) 
{ 
    usersTableAdapters.UsersTableAdapter user = new usersTableAdapters.UsersTableAdapter(); 
    users.UsersDataTable userDataTable = user.GetData(); 
    user.checkEmail(email); 

    if (userDataTable.Rows == 0) 
    { 
    } 

} 

В checkEmail есть запрос, который является "SELECT COUNT (электронная почта), электронную почту из людей, где (электронная почта =?)"

В методе checkEmail я пытаюсь чтобы проверить, была ли их строка, извлекаемой или нет, однако с этим текущим кодом я получаю эту ошибку:

оператор «==» не может быть применен к операндам «System.Data.DataRowCollection» типа и «Int

Кто-нибудь понимает, что я делаю неправильно?

+3

'' userDataTable.Rows.Count'' –

+0

также вы забывание 'вернуть userDataTable.Rows.Count' в вашем методе? .. – MethodMan

ответ

0

Ваш вопрос в том, что userDataTable.Rows не является целым числом, это коллекция строк. Если вам нужно количество строк, вам нужно будет использовать свойство Count.

Вы будете в конечном итоге с этим:

if(userDataTable.Rows.Count == 0) 
{ 
... 
} 
0

Rows коллекция называется DataRowCollection, вы должны проверить Count свойство:

if (userDataTable.Rows.Count == 0) 
+0

Учитывая, что выглядит SQL, я бы утвердил ExecuteScalar вместо использования DataAdapter и DataTable. –

0

вы забыли добавить Count:

if (userDataTable.Rows.Count == 0) 
{ 
} 
+0

. Вам следовало бы добавить дополнительный контекст, чтобы пользователь мог понять, как вы говорите им, чтобы изменить их код. –

+0

Благодарим вас за ввод – Ronny

0

Ряды свойство DataTable представляет собой набор DataRow объекты. Изменение кода:

if (userDataTable.Rows.Count == 0) 
{ 
... 
} 
Смежные вопросы