Khurana Dips Ответов: 1

Как показать значение в выпадающем списке из базы данных?


Вот мой параметр connectionString:

&ЛТ;добавить имя="LifetimeConnection" свойства connectionString="источник данных=(localdb с)\В11.0;Ключевое Слово Attachdbfilename=|Параметр Datadirectory|\Образец.МДФ;Комплексная безопасность=истина"
система имя_поставщика=".Данных.В sqlclient" /&ГТ;

Это код C# :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Web.Configuration;
using System.Configuration;

namespace LifeTime
{
    public partial class index : System.Web.UI.Page
    {
        //static Configuration rootWebConfig = WebConfigurationManager.OpenWebConfiguration("/LifeTime");
        //SqlConnection con = null;
        //string constr = ConfigurationManager.ConnectionStrings["LifetimeConnection"].ConnectionString;
        //System.Configuration.Configuration webconfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(null);
        //const string CONSTRINGNAME = "LifetimeConnection";
        //ConnectionStringSettings conString = rootWebConfig.ConnectionStrings.ConnectionStrings[CONSTRINGNAME];
        //SqlConnection con = new SqlConnection(rootWebConfig.ConnectionStrings[CONSTRINGNAME].ConnectionStrings);
        protected void Page_Load(object sender, EventArgs e)
        {
            //SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["LifetimeConnection"].ConnectionString);
            //SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog = Sample;Trusted_Connection=true;");
            //Response.Write(con);
            //SqlCommand cmd = new SqlCommand("Select ID,location_name from dbo.location where flag = 0;",con);
            SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["LifetimeConnection"].ConnectionString);

            try
            {
                Response.Write("Hi Hello");
                con.Open();
                Response.Write("Con is opened");
                SqlCommand cmd = new SqlCommand("Select top 1 * from location;", con);
                dropdownlist.DataSource = cmd.ExecuteReader();
                dropdownlist.DataBind();
                dropdownlist.DataTextField = "location_name";
                dropdownlist.DataValueField = "ID";
                dropdownlist.DataBind();
            }
            catch (Exception ex)
            {

            }
            finally
            {
                con.Close();
            }
        }
    }
}
Пожалуйста, предложите мне способ. Я буду Вам благодарен.

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

Я перепробовал все способы google, но никакого результата не получилось

F-ES Sitecore

Удалите trry\catch\наконец, он просто маскирует любые ошибки, которые может генерировать ваш код, или, по крайней мере, просто используйте отладчик, чтобы пройти через ваш код, так как это также покажет вам, генерирует ли ваш код ошибки.

1 Ответов

Рейтинг:
2

Mehedi Shams

Привет Член 13209785,

Вы просто хотите просто показать Id вместе с location_name? Тогда простое объединение с идентификатором и отображение объединенного элемента - это самое быстрое решение для этого.

SqlCommand cmd = new SqlCommand("Select top 1 * from location;", con);
Приведенная выше строка изменяется на:
SqlCommand cmd = new SqlCommand("Select top 1 *, CONVERT(VARCHAR, ID) + ' ' + location_name AS LocationNameWithId from location", con);
Затем установите источник данных в LocationNameWithId:
dropdownlist.DataTextField = "LocationNameWithId";
Кроме того, я не вижу никакой пользы от первого DataBind() заявление. Вы можете удалить это.

Однако ваш код уязвим для атак SQL-инъекций. Пожалуйста, прочтите о них и позаботьтесь соответственно.


Khurana Dips

Нет, я просто хочу отобразить имя loaction в раскрывающемся списке и принять идентификатор как selectedvalue для этого.Пожалуйста, предложите мне плодотворный путь. это очень срочно, но приведенный выше код не работает. После Кона.Open (), он выходит из блока try. Я думаю, что мое подключение к базе данных здесь сделано неправильно. Пожалуйста, покажи мне дорогу. Заранее спасибо.

Mehedi Shams

В таком случае я не вижу никаких проблем в вашем коде. Если он выходит после con. open (), это будет означать, что соединение не удалось. Вы можете попытаться поймать ошибку в блоке CATCH и посмотреть, в чем проблема.

Ответ.Write ("произошла ошибка. Ошибка сообщения: "+ экс.Сообщение);

Насколько я знаю, AttachDbFilename уникально используется для SQLExpress. Вы используете SQL Express?

В качестве альтернативы вы можете попробовать другие форматы строки подключения. :
параметр connectionString ="сервер=.; Начальный Каталог=Образец; Комплексная Безопасность=Истина"

Khurana Dips

Этот формат connectionstring-- & gt; connectionString ="Server=.; Initial Catalog=Sample; Integrated Security=True" я уже использовал в коде C#. Но ничего не произошло.
Потом, я создал эту строку соединения --&ГТ;&ЛТ;добавить имя="LifetimeConnection" свойства connectionString="источник данных=(localdb с)\В11.0;Ключевое Слово Attachdbfilename=|Параметр Datadirectory|\Образец.МДФ;Комплексная безопасность=истина"
providerName= "System.Data.SqlClient" /> В файле web.config и попытался подключиться к базе данных. Но результата не было.

Я использую базу данных SQL server, которая находится в visual studio.
Предложи мне способ.

Mehedi Shams

Вы пробовали ловушку ошибок через блок TRY-CATCH? Любое сообщение, промелькнувшее в браузере?