asp.net C # - невозможно получить заполнить (предварительно выбрать) выпадающий список SelectedValue из базы данных SQL - PullRequest
0 голосов
/ 16 мая 2018

Я только начинаю изучать программирование. Я сталкиваюсь с ошибкой, которую не могу понять. Мой код позади Я получаю сообщение об ошибке CS1001 (ожидается идентификатор). Мне нужно получить значение для искомой записи и предварительно выбрать его в раскрывающемся списке:

protected void DetailsView1_DataBound(object sender, EventArgs e)
{
    DataTable dvt = new DataTable();
    using (SqlConnection sqlconn = new SqlConnection(mainconn))
    {

        sqlconn.Open();
        SqlCommand sqlcomm = new SqlCommand();
        string sqlquery = "SELECT distinct [EncounterID], pd.[MRN], [VisitDate], FirstName, LastName, DOB, Gender,[BMI_Category], [Asthma_IDDate], [Tobacco_Counsel], [EC_ImmediateType], [BCM_ImplantDisp], [BCM_CondomDisp], [BCM_IUDDisp], [BCM_DepoDisp], [BCM_NuvaRingDisp], [BCM_PatchDisp], [Preg_TestToday], [Preg_TestResults], [EC_AdvanceType], [EC_Immediate], [EC_Advance], [BCM_FemaleCondomDisp], [BCM_LatexDamDisp], [NoBCM_PartnerMethod], [NoBCM_SeekingPreg], [NoBCM_Abst], [NoBCM_Preg], [NoBCM_SameSex], [NoBCM_Undecided], [NoBCM_Refused], [NoBCM_LarcAppt], [NoBCM_Other], [NoBCM_OtherReason], [NoBCM_AlreadyUsing], [BCMAlready_Patch], [BCMAlready_Depo], [BCMAlready_Condom], [BCMAlready_Implant], [BCMAlready_IUD], [BCMAlready_FemaleCondom], [BCMAlready_ECOnly] FROM [OSCRMedicalData] md INNER JOIN OSCRPersonData pd on md.MRN=pd.MRN WHERE ([EncounterID] = @EncounterID)";
        sqlcomm.CommandText = sqlquery;
        sqlcomm.Connection = sqlconn;
        sqlcomm.Parameters.AddWithValue("@EncounterId", Txtsearch.Text);
        SqlDataReader sdr = sqlcomm.ExecuteReader();



        DropDownList ddl = (DropDownList)DetailsView1.FindControl("Preg_TestToday");
        if (ddl != null)
        {
            ddl.DataSource = sdr;
            ddl.SelectedValue = sdr.["Preg_TestToday"].ToString();
            ddl.DataBind();

           ddl.SelectedValue = sdr.["Preg_TestToday"].ToString();

        }

    }    



}

1 Ответ

0 голосов
/ 16 мая 2018

Вам необходимо удалить. В обе строки Быть СПЗ [ "Preg_TestToday"]. Кроме того, вы не можете напрямую связываться с DataReader, как вам нужно:

DataTable dt = new DataTable();
dt.Load(sdr);

Вам нужно преобразовать в datatable для чтения данных с помощью индексаторов или использовать сначала

If(sdr.Read())
{
    var selectedValue = sdr["YourColumnName"];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...