Можно ли нацеливать записи базы данных на основе выбранного элемента dropDown в C # / ASPNET Webforms? - PullRequest
1 голос
/ 06 июня 2019

Во-первых, я хотел бы извиниться за мой плохой титул.

Я создаю приложение CRUD, используя ASPNET Webforms. Одна из моих страниц содержит dropDown, который заполнен строками, созданными на основе извлечения записей из базы данных SQL (Id, FirstName, фамилия).

пример

Я хочу связать записи в моем dropDown с идентификаторами элементов в моей базе данных, чтобы затем использовать их для обновления и удаления функций.

В настоящее время у меня есть код для заполнения списка этими идентификаторами, но потом я понял, что понятия не имею, как связать эти записи с идентификаторами или, если это вообще возможно.

Текущий код для заполнения dropDown:

// string for populating crud_dropDown
            string commandString = "SELECT Id, FirstName, Surname FROM Users ORDER BY Id ASC;";
            SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
            SqlDataReader myDataReader = sqlCmd.ExecuteReader();

            // List to be populated with integers that correlate with with IDs in the database
            List<int> DbIds = new List<int>();

            while (myDataReader.Read())
            {
                // database IDs are are captured from database, saved as a string and converted to an integer
                string listId = myDataReader["Id"].ToString();
                int convtd_listId = Convert.ToInt32(listId);

                // captured IDs are added to DbIds List
                DbIds.Add(convtd_listId);

                // crud_dropDown is populated with strings built with DbIds contents and names read from the database
                string id = convtd_listId.ToString();
                string fn = myDataReader["FirstName"].ToString();
                string sn = myDataReader["Surname"].ToString();
                crud_dropDown.Items.Add(id + " - " + fn + " - " + sn);
            }

1 Ответ

1 голос
/ 06 июня 2019

Если предположить, что вы извлекаете имена и идентификаторы из базы данных - вы создаете список объектов, содержащий информацию, чтобы вы могли сделать это:

Создайте класс для храненияподробности, такие как username и id свойства, и список его собственного типа (пример позже).

Затем в коде для страницы инициализируйте объект и выполните некоторый sql для привязки данных db к объектам.и прочитайте это в список:

User cUser = new User();

//From the sql:
while (reader.Read())
{
    User u = new User
    {
        UserID = Convert.ToInt32(reader["UserID"]),
        UsersName = reader["Name"].ToString()
    };
    cUser.lstUsers.Add(u);
}

//Now we have the data just pipe it into the dropdownlist:
foreach (User u in cUser.lstUsers)
{
    //The dropdown control:
    ddlUsers.Items.Add(new ListItem(u.UsersName, u.UserID.ToString()));
}
...