ASP.NET textbox i dane z bazy

0

Mam problem nad którym spędziłem trochę czasu i nie udało mi się znaleźć rozwiązania, proszę więc o pomoc. Na Web Form mam około 15 textbox-ów typu imię, nazwisko, adres... itp. oraz SqlDataSource w którym mam skonfigurowane połączenie, nie potrafię sprawić aby przy Page Load textboxy wypełniły się danymi z zapytania w SqlDataSource. Ktoś ma pomysł jak to rozwiązać?? Z góry dziękuje za pomoc i pozdrawiam.

0

Napisać zwykłą metodę z użyciem SqlDataReader, która wstawia dane do Textboxów - ręcznie!

A jeśli chcesz trochę to zautomatyzować, możesz stworzyć jakiś swój moduł ORM, który ładnie to powstawia.

.. Pewnie i by się udało z użyciem DetailsPanela..

0

Dzięki wielkie za pomocną odpowiedź. Moje rozwiązanie poniżej:

protected void Page_Load(object sender, EventArgs e)
{
SqlConnection dbpolacz = new SqlConnection(" ---String połączenia z bazą--- ");

        try 
        { 
            dbpolacz.Open();

            SqlCommand querySeansDane = new SqlCommand ("dbo.PORT_PROC_DANE_OSOBOWE",      dbpolacz); 
            querySeansDane.CommandType = CommandType.StoredProcedure; 
            querySeansDane.Parameters.Add("@IDENTY","IK090909"); 
             
            SqlDataReader czytacz = querySeansDane.ExecuteReader();
            if(czytacz.Read()) 
            { 

                tb_nazwisko.Text = czytacz["NAZWISKO"].ToString();
                tb_imie.Text = czytacz["IMIE"].ToString();
                tb_dru_imie.Text = czytacz["IMIE_DRUG"].ToString();
                tb_pesel.Text = czytacz["PESEL"].ToString();

                 
                string plec= czytacz["PLEC"].ToString();
                if (plec == "M") tb_plec.Text = "MĘŻCZYZNA";
                if (plec == "K") tb_plec.Text = "KOBIETA";

                 
                string stan_cyw = czytacz["STAN_CYWIL"].ToString();
                if (stan_cyw == "KA") tb_stan_cyw.Text = "PANNA";
                if (stan_cyw == "KB") tb_stan_cyw.Text = "MĘŻATKA";
                if (stan_cyw == "KC") tb_stan_cyw.Text = "WOLNA";
                if (stan_cyw == "KD") tb_stan_cyw.Text = "WDOWA";
                if (stan_cyw == "KE") tb_stan_cyw.Text = "ROZWIEDZIONA";
                if (stan_cyw == "MA") tb_stan_cyw.Text = "KAWALER";
                if (stan_cyw == "MB") tb_stan_cyw.Text = "ŻONATY";
                if (stan_cyw == "MC") tb_stan_cyw.Text = "WOLNY";
                if (stan_cyw == "MD") tb_stan_cyw.Text = "WDOWIEC";
                if (stan_cyw == "ME") tb_stan_cyw.Text = "ROZWIEDZIONY";

                tb_naz_rod.Text = czytacz["NAZ_RODOW"].ToString();
                tb_imie_ojca.Text = czytacz["IMIE_OJCA"].ToString();
                tb_imie_matki.Text = czytacz["IMIE_MATKI"].ToString();
                tb_nazw_rod_matki.Text = czytacz["NAZ_RODMAT"].ToString();
                tb_data_uro.Text = czytacz["DATA_URODZ"].ToString();
                tb_data_zgon.Text = czytacz["DATA_ZGONU"].ToString();
                tb_miej_urodz.Text = czytacz["MIEJ_URODZ"].ToString();
                tb_nip.Text = czytacz["NIP"].ToString();
                tb_identyfikator.Text = czytacz["IDENTY"].ToString();
                tb_obywatelstwo_1.Text = czytacz["KOD_OBY"].ToString();
                tb_obywatelstwo_2.Text = czytacz["NAZWA_OBY"].ToString();
                tb_dor_naukowy.Text = czytacz["DOROBEK"].ToString();
                tb_tyt_naukowy_1.Text = czytacz["KOD_TYT_NAUK"].ToString();
                tb_tyt_naukowy_2.Text = czytacz["NAZWA_TYT_NAUK"].ToString();
                tb_prawo_jazd_kat.Text = czytacz["PJ_KAT"].ToString();
                if ((czytacz["PJ_ZAWOD"].ToString()) == "T") cb_zawodowe_praw_jazd.Checked = true;
                else cb_zawodowe_praw_jazd.Checked = false;
                tb_sprzeciw.Text = czytacz["SPRZECIW"].ToString();
                tb_karalnosc.Text = czytacz["KARALNOSC"].ToString();
         //     tb_num_dostawcy.Text
         //     tb_num_odbiorcy.Text

            }                        
           // czytacz.NextResult(); 
           // if(czytacz.Read()){} 

        } 
        catch(Exception ex) 
        {/*komunikat błędu*/} 
        finally 
        { 
            dbpolacz.Close(); 
        }

    }
0
Xavier_pr napisał(a)

Dzięki wielkie za pomocną odpowiedź. Moje rozwiązanie poniżej:

string stan_cyw = czytacz["STAN_CYWIL"].ToString();
if (stan_cyw == "KA") tb_stan_cyw.Text = "PANNA";
if (stan_cyw == "KB") tb_stan_cyw.Text = "MĘŻATKA";
if (stan_cyw == "KC") tb_stan_cyw.Text = "WOLNA";
if (stan_cyw == "KD") tb_stan_cyw.Text = "WDOWA";
if (stan_cyw == "KE") tb_stan_cyw.Text = "ROZWIEDZIONA";
if (stan_cyw == "MA") tb_stan_cyw.Text = "KAWALER";
if (stan_cyw == "MB") tb_stan_cyw.Text = "ŻONATY";
if (stan_cyw == "MC") tb_stan_cyw.Text = "WOLNY";
if (stan_cyw == "MD") tb_stan_cyw.Text = "WDOWIEC";
if (stan_cyw == "ME") tb_stan_cyw.Text = "ROZWIEDZIONY";

Tylko po co 10 razy sprawdzać jedną wartość, nie lepiej użyć else if?
Albo w ogóle w takim przypadku jakiegoś słownika.
Zresztą, tyle tych textboxów, że może lepiej je do jakiejś kolekcji wrzucić...

0

Rzeczywiście lepiej było by to zrobić przez elsa ponieważ po spełnieniu warunku reszta nie była by już sprawdzana, ale to nieistotne w tym temacie.

Udało mi się znaleŹć inny sposób niż napisanie metody z palca wykożystującej SqlDataReadera.
Jest specjalna kontrolka DetailsView, którą podłącza się do bazy za pomocą kreatora. Wewnątrz niej można umieścić textboxy które będą automatycznie wypełniane danymi z bazy.

<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" 
 DataSourceID="SqlDataSource1" Height="50px" Width="125px" 
 BorderStyle="None" GridLines="None" style="margin-left: 0px">
 
<Fields>
    <asp:TemplateField>
      <ItemTemplate>

         <table style="width: 100%; height: 36px;">
                    <tr>
                        <td class="style22">
                            Nazwisko:</td>
                        <td class="style23">
                            Imię:</td>
                        <td class="style32">
                            Drugie imię:</td>
                        <td class="style31">
                            PESEL:</td>
                    </tr>
                    <tr>
                        <td class="style21" style="text-align: left">
                            <asp:TextBox ID="tb_nazwisko" runat="server" Width="247px" ReadOnly="True" 
                                Text='<%# Bind("NAZWISKO") %>'></asp:TextBox>
                        </td>
                        <td class="style20" style="text-align: left">
                            <asp:TextBox ID="tb_imie" runat="server" ReadOnly="True" 
                                Text='<%# Bind("IMIE") %>'></asp:TextBox>
                        </td>
                        <td class="style20" style="text-align: left">
                            <asp:TextBox ID="tb_dru_imie" runat="server" ReadOnly="True" 
                                Text='<%# Bind("IMIE_DRUG") %>'></asp:TextBox>
                        </td>
                        <td style="text-align: left">
                            <asp:TextBox ID="tb_pesel" runat="server" ReadOnly="True" 
                                Text='<%# Bind("PESEL") %>'></asp:TextBox>
                        </td>                       
                    </tr>
                </table>
         </ItemTemplate>
      </asp:TemplateField>
   </Fields>
</asp:DetailsView> 

1 użytkowników online, w tym zalogowanych: 0, gości: 1