Member 14630006 Ответов: 3

Как отобразить базу данных access на этикетках


я попробовал этот код ,но он не работает, этикетка показывает то же самое, что и его старое текстовое имя label25, в чем проблема?

Что я уже пробовал:

string connectString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=D:/ALL/Database311.mdb";
OleDbConnection cn = new OleDbConnection(connectString);

cn.Open();
string selectString = "SELECT name FROM tabel22 WHERE name='" + label25.Text+ "'";
OleDbCommand cmd = new OleDbCommand(selectString, cn);
OleDbDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
    label25.Text = reader.GetString(reader.GetOrdinal("name"));
}


cn.Close();

Member 14630006

как показать второе имя в таблице 22

3 Ответов

Рейтинг:
22

Andy Lanng

Вот что делает ваш sql:

Скажи мне "имя", где " имя "- это "Даг", и ты удивишься, что это Даг?

Взгляните еще раз на sql. пройдите через него и проверьте значения.


Member 14630006

большое спасибо я попробовал это сделать и это сработало
string selectString = "выберите имя из tabel22";

Рейтинг:
2

RickZeeland

Код правильный, вы ищете то же самое имя, и оно будет показано снова :)


Рейтинг:
16

MadMyche

Рад, что вы разрешили свою логическую ошибку...

Теперь перейдем к более важным вещам - этот код имеет Уязвимость SQL-инъекции
string = "SELECT name FROM tabel22 WHERE name='" + label25.Text+ "'"

Правильный способ принять пользовательский ввод и поместить его в команду SQL-это использовать параметры; которые должным образом экранируют запись пользователя.

string selectString = "SELECT name FROM tabel22 WHERE name= ?";
OleDbCommand cmd = new OleDbCommand(selectString, cn);
cmd.Parameters.AddWithValue("@name", label25.Text);
OleDbDataReader reader = cmd.ExecuteReader();


Member 14630006

о, большое спасибо, но где пользователь собирается ввести свой ввод?

MadMyche

С вводом ничего не изменилось, по-прежнему label25. Это входит в запрос здесь:
cmd.Parameters.AddWithValue("@name", label25.Text);

Member 14630006

он ничего не показывал label25 stil label25