Получить указанный c столбец указанного пользователя c в datatable - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть таблица данных, в таблице данных у меня есть 3 столбца: ИМЯ ПОЛЬЗОВАТЕЛЯ, ПАРОЛЬ и Деньги.

Я хочу установить в моей программе конкретную настройку c, чтобы метка количество денег, которое есть у пользователя, и для каждого пользователя будет отображаться что-то еще, в зависимости от того, кто в данный момент вошел в систему, возможно ли это, и если да, то как я могу это сделать?

Заранее спасибо.

Database layout

1 Ответ

2 голосов
/ 12 февраля 2020

Вы можете поместить сумму денег в свой ярлык, написав некоторый код. Это используется для подключений к базе данных MS SQL (в вашем случае). Вот пример:

using System.Data.SqlClient;//Add this in the using statements at the top of your code.

using (SqlConnection conn = new SqlConnection(@"Data Source = (LocalDB)\MSSQLLocalDB; AttachDbFilename =" +Application.StartupPath+ @"\Database1.mdf; Integrated Security = True"))
        {
            conn.Open();
            using (SqlCommand cmd = new SqlCommand())
            {
                cmd.Connection = conn;
                cmd.CommandText = "SELECT Money FROM Users WHERE Username = @username";

                cmd.Parameters.AddWithValue("@username", "User1");

                var reader = cmd.ExecuteReader();
                reader.Read();

                label1.Text = reader.GetValue(0).ToString(); //reader returns an object, you have to convert it in your type.
                //GetValue(selected column number)
            }
            conn.Close();//This line is optional. The connection closes automatically when the using() statement ends.
        }

Вы можете добавить этот код в событие загрузки формы. (Если вы работаете с Win Forms).

Второй способ - использование набора данных с привязкой. ярлык к нему. Это также мощно, и вам не нужно слишком много знать sql или как кодировать, это более сложно в начале, но это проще и экономит время. Вы можете применить его к любому из ваших элементов формы (кнопки, представления данных, поле со списком, текстовое поле и т. Д. c).

Сначала go к свойствам метки и найдите «Привязки данных». Нажмите на продвинутый. Просто нажмите «Далее», пока не увидите параметр «Подключиться к базе данных» Если вы уже подключены к вашей базе данных с Visual Studio, она появится в этом поле со списком, в противном случае щелкните новое соединение (я полагаю, вы работали в базе данных на основе служб). Нажмите Далее и завершите sh. После того, как вам нужно будет привязать метку к базе данных (она создаст сгенерированный код в вашем событии загрузки формы). Если у вас есть только одна запись (один пользователь) в таблице, она покажет только одно значение, но если вы хотите показать определенного пользователя c, вы можете изменить этот сгенерированный метод «Fill» в событии загрузки формы на другое ( фильтруется с WHERE SQL пунктом). Вы можете изменить этот метод заполнения в наборе данных, добавленном внизу вашего дизайнера формы. Нажмите на стрелочку рядом с ней и выберите «Редактировать в дизайнере». Нажмите на раздел адаптера таблицы, щелкните правой кнопкой мыши по его функции (в данном случае метод Fill ()) и нажмите «Настроить». Здесь вы можете изменить оператор sql и поставить в конце предложение WHERE (например, где Username =?). "?" означает некоторую переменную. После передачи в созданную в форме события функцию загрузки вашего имени пользователя рядом с этим набором данных. Выполнено. Если вы хотите работать с базами данных Win Forms и sql, я советую вам узнать, как использовать наборы данных, привязки и адаптеры таблиц. Надеюсь, поможет. Скриншоты моих объяснений:

Step1 Step2 Step3 Step4 Step5 Step6 Step7 Step8 Step9

!!!! [ОБНОВИТЬ] !!!! Вот мой пример программы на Google Drive: Ссылка . Справа вы можете открыть мою сервисную базу данных (в файлах проекта (Database1)). Я приложу несколько полезных скриншотов для создания дополнительных функций в таблице объявлений набора данных. Кроме того, второй метод прокомментирован в событии загрузки Form1.

Img1 Img2 Img3 Img4 Img5 Img6 Img7

...