2015-04-20 2 views
1

Функции коды: проверьте номер отдела с клиентами & перенаправления на другую страницуC# SQL выберите функцию

Проблема: код, приведенный ниже, не работает, как я должен это исправить?

connection.Open(); 
OleDbCommand command = new OleDbCommand(); 

command.Connection = connection; 

string Query1 = "Select Department from Registration where [Name] ='" + TextBox1.Text + "' and [Password] ='" + TextBox2.Text + "'"; 
command.CommandText = Query1; 

Object DepartmentId = command.ExecuteScalar(); 

if (DepartmentId != null) 
{ 
    int number = Convert.ToInt32(DepartmentId); 
    connection.Close(); 
    connection.Dispose(); 
} 

if (DepartmentId == "1") 
{ 
    Response.Redirect(ResolveClientUrl("~/Report.aspx"), true); 
} 
+3

что вы имеете в виду _does не work_? – jfun

+0

Невозможно перенаправить на страницу других пользователей, когда пользователь входа правильно. Есть ли у меня проблемы с логикой или кодированием? –

+0

Вы проверили значение 'number'? – ThEpRoGrAmMiNgNoOb

ответ

2

Вы используете ExecuteNonQuery, вместо того, чтобы использовать ExecuteReader, а затем получить значения столбцов или использовать ExecuteScalar с count в соответствии с моделью данных

+1

Если вы просто посмотрите ** документацию ** на [OleDbCommand ] (https://msdn.microsoft.com/en-us/library/system.data.oledb.oledbcommand%28v=vs.110%29.aspx), вы увидите, что там ** нет 'ExecuteQuery' ** метод на этом объекте .... –

+1

Извините, что я имел в виду «ExecuteReader» – Professor

3

Попробуйте это.

ExecuteNonQuery: используется для обновления и удаления запроса и возвращает число затронутых строк.

Execute Sclar: возвращает только одно выбранное значение.

int number = command.ExecuteNonQuery();

Замените код ниже

Object DepartmentId = command.ExecuteScalar(); 
if(DepartmentId != null) 
    int number = Convert.ToInt32(DepartMentId); 
    connection.Close(); 
    connection.Dispose(); 

Update:

Object DepartmentId = command.ExecuteScalar(); 
connection.Close(); 
connection.Dispose(); 

int number = 0; 
    if (DepartmentId != null) 
     { 
      number = Convert.ToInt32(DepartmentId); 

     } 
    if(number == 1) 
    { 
     //.. 
    } 
+0

, что означает «Int32.TryParse (DepartmentId, out number);» и я хочу проверить число, используя «label1.text = DepartmentId». Тем не менее, странно, что я не могу сделать это –

+0

, преобразуя индекс объекта ObjectId в (int)., Вы также можете написать int number = Convert.ToInt32 (DepartMentId); – sudhAnsu63

+0

if (DepartmentId == 1) response.redirect ("Default.aspx") ?? если номер отдела равен 1, просто перенаправьте значение Default.aspx. Я очень новичок в C#, так что спасибо за терпение. –

Смежные вопросы