wykonanie selecta na mssql w c#

0

Cześć.
Napisałem kawałek kodu, który wykonuje selecta na danej bazie danych.

oto ten kod:

 string sCxn = @"server=MyServ;Integrated Security=SSPI; database=BazaDanych";
            string insertQuery = "select * from klienci";
            SqlConnection myConnection = new SqlConnection(sCxn);
            try
            {
                SqlCommand myCommand = new SqlCommand(insertQuery, myConnection);
                myConnection.Open();
                using (SqlDataReader reader = myCommand.ExecuteReader())
                {
                    while (reader.Read())
                        MessageBox.Show(reader.GetSqlValue(7).ToString());
                    reader.Close();
                }

                MessageBox.Show("ok");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            finally
            {
                myConnection.Close();
            }

Nie wiem jednak, czy nie dałoby się tego kodu poprawić. Szczególnie ten fragment:

                using (SqlDataReader reader = myCommand.ExecuteReader())
                {
                    while (reader.Read())
                        MessageBox.Show(reader.GetSqlValue(7).ToString());
                    reader.Close();
                }

Widzimy tu, że na sucho podaję kolumnę nr 7 z której pobieram dane. Zaletą funkcji GetSqlValue jest to, że przynajmniej nie wywala się przy wartościach null.

Jednak, czy pobranie i przeczytanie danych z ms sql dałoby się zrealizować nieco bardziej estetycznie?
ps: nie chodzi o zwięzłość kodu początkowego, bo to tylko dla pokazu jest w takiej postaci, tak by wiadomo było co się dzieje po kolei.

Z góry dziękuję za rady.

0

Zamiast indeksu kolumny możesz podać jej nazwę w metodzie GetSqlValue.

Według mnie najestetyczniej będzie wtedy, gdy stworzysz model typu POCO oraz dostarczysz mapping jakiemuś ORM, który resztą zajmie się za ciebie. Jeżeli korzystasz z SQL Server i Visual Studio to wykonanie czegoś takiego za pomocą Entity Framework to ~2 minuty.

0

Ok bardzo dziękuję :)

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