Привязка данных к dropdownlist и selectedvalue с помощью C#
У меня есть два стола:
Категория : CatID, CatName
Новости : NewsID, CatID,Название,Содержание
Теперь я хочу, чтобы при редактировании в таблице новостей у меня был выпадающий список и привязка всех значений из категории таблицы и отображение SelectedValue previous
Пожалуйста, помогите мне
Что я уже пробовал:
try { SqlConnection conn = new SqlConnection(connStr); SqlDataReader reader = null; conn.Open(); string sql = "SELECT * FROM NEWS where NewsID= " + sid + ""; SqlCommand comm = new SqlCommand(); comm.Connection = conn; comm.CommandText = sql; reader = comm.ExecuteReader(); while (reader.Read()) { string Newsid = reader.GetValue(reader.GetOrdinal("Newsid")).ToString(); string CatID = reader.GetValue(reader.GetOrdinal("CatID")).ToString(); string Title = reader.GetValue(reader.GetOrdinal("Title")).ToString(); string Content = reader.GetValue(reader.GetOrdinal("Content")).ToString(); if (Newsid != "") { SqlDataReader reader = null; string sql = "SELECT CatID, CatName FROM Category order by Catid desc"; SqlCommand comm = new SqlCommand(); comm.Connection = conn; comm.CommandText = sql; reader = comm.ExecuteReader(); while (reader.Read()) { string CatID_root = reader.GetValue(reader.GetOrdinal("CatID")).ToString(); string CatName = reader.GetValue(reader.GetOrdinal("CatName")).ToString(); if (CatID_root == CatID) { Dropdownlist.DataSource = reader; Dropdownlist.DataValueField = "CatID"; Dropdownlist.DataTextField = "CatName"; Dropdownlist.SelectedValue = CatName; Dropdownlist.DataBind(); } else { Dropdownlist.DataSource = reader; Dropdownlist.DataValueField = "id"; Dropdownlist.DataTextField = "bulkname"; Dropdownlist.DataBind(); } } } }
Gerry Schmitz
Так что никакого кода. Никакой платформы. Не помочь.
Tom Paul Heart
мой код:
пробовать
{
SqlConnection conn = новый SqlConnection(connStr);
SqlDataReader reader = null;
Коннектикут.Открыть();
строка sql = "SELECT * FROM NEWS where NewsID=" + sid + "";
Sqlcommand, который комми = новый sqlcommand, который();
связь.Соединение = conn;
связь.CommandText = sql;
читатель = комм.Метода executereader();
в то время как (читатель.читать())
{
строка Newsid = reader.GetValue(читатель.GetOrdinal("Newsid")).Метод toString();
строка CatID = reader.GetValue(читатель.GetOrdinal("CatID")).Метод toString();
заголовок строка = читатель.GetValue(читатель.GetOrdinal("Название")).Метод toString();
содержимое строки = читатель.GetValue(читатель.GetOrdinal("Содержание")).Метод toString();
если (Newsid != "")
{
SqlDataReader reader = null;
строка SQL = "выберите идентификатор catid, CatName от того, категория по убыванию catid с";
Sqlcommand, который комми = новый sqlcommand, который();
связь.Соединение = conn;
связь.CommandText = sql;
читатель = комм.Метода executereader();
в то время как (читатель.читать())
{
строка CatID_root = reader.GetValue(читатель.GetOrdinal("CatID")).Метод toString();
строка CatName = reader.GetValue(читатель.GetOrdinal("Кошачье Имя")).Метод toString();
если (CatID_root == catid с)
{
Dropdownlist для.Источник данных = читатель;
Выпадающий список.DataValueField = "CatID";
Выпадающий список.DataTextField = "Имя Кошки";
Выпадающий список.SelectedValue = CatName;
Выпадающий список.Привязку();
}
еще
{
Dropdownlist для.Источник данных = читатель;
Выпадающий список.DataValueField = "id";
Выпадающий список.DataTextField = "bulkname";
Выпадающий список.Привязку();
}
}
}
}
Gerry Schmitz
https://stackoverflow.com/questions/20698562/populate-dropdownlist-with-datareader-from-database
RickZeeland
https://www.codeproject.com/Articles/24656/A-Detailed-Data-Binding-Tutorial
Richard Deeming
string sql = "SELECT * FROM NEWS where NewsID= " + sid + "";
Ваш код почти наверняка уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]
const string sql = "SELECT * FROM NEWS where NewsID = @NewsID"; SqlCommand comm = new SqlCommand(); comm.Connection = conn; comm.CommandText = sql; comm.Parameters.AddWithValue("@NewsID", sid);