2014-12-29 2 views
-1

привет это мой первый вопрос на этом сайтеasp.net, который не существует в таблице SQL

У меня есть веб-форму с помощью выпадающего списка, который заселяется из моей базы данных, которая sql-server 2012.

моя таблица имеет значения, такие как genderID и genderName, и она заполняет раскрывающийся список, но я также хочу показать значение по умолчанию, когда событие загрузки страницы «Выберите пол».

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

мой код позади:

using(SqlConnection con = new SqlConnection(cs)) 
{ 

     using(SqlCommand cmd = new SqlCommand("select * from dbo.Gender", con)) 
     { 
      con.Open(); 
      DropDownList1.DataSource = cmd.ExecuteReader(); 
      DropDownList1.DataTextField = "GenderName"; 
      DropDownList1.DataValueField = "ID"; 
      DropDownList1.DataBind(); 
     } 
    } 

При загрузке страницы он должен показать «Выбрать Пол» в выпадающем списке.

ответ

2

Вы не должны добавьте запись в базу данных, чтобы показать это значение по умолчанию в раскрывающемся списке. Вы можете просто инициализировать объект ListItem и вставить его в раскрывающийся список с индексом 0.

Помните, что выпадающий список представляет собой набор объектов ListItem , поэтому инициализируйте объект ListIte m и добавьте его в раскрывающийся список.

Что-то вроде ......

using(SqlConnection con = new SqlConnection(cs)) 
{ 
    using(SqlCommand cmd = new SqlCommand("SELECT * FROM dbo.Gender", con)) 
    { 
     con.Open(); 
     DropDownList1.DataSource = cmd.ExecuteReader(); 
     DropDownList1.DataTextField = "GenderName"; 
     DropDownList1.DataValueField = "ID"; 
     DropDownList1.DataBind(); 

     ListItem li = new ListItem("Select Gender", "-1"); 
     DropDownList1.Items.Insert(0, li); 
    } 
} 
0

Что-то, как это будет работать после того, как вы свяжете:

DropDownList1.Items.Insert (0, новый ListItem ("Выберите Пол", "- 1")

1

После привязки данных к DropDownList, сделайте следующее:

DropDownList1.Items.Insert(0, new ListItem("Select gender","") 
0

Другой вариант заключается в добавлении элемента с помощью UNION ALL в вашем выберите оператор.

Вот пример:

using(SqlConnection con = new SqlConnection(cs)) 
{ 
    using(SqlCommand cmd = new SqlCommand("select 'Select Gender' genderName, 0 genderID UNION ALL select genderName, genderId from Gender", con)) 
    { 
     con.Open(); 
     DropDownList1.DataSource = cmd.ExecuteReader(); 
     DropDownList1.DataTextField = "genderName"; 
     DropDownList1.DataValueField = "genderID"; 
     DropDownList1.DataBind(); 
    } 
} 
Смежные вопросы