torsdag 30 december 2010

ASP.NET så enkelt som möjligt, del 3

Det bör ju inte vara så komplicerat att läsa en post från en tabell och visa innehållet i ett formulär. Men enkelt är det inte. Om man söker på nätet efter hur man arbetar med databas i Visual Studio 2010 med C# och .NET Framework 4, så handlar det mest om Entity Framework, som jag helst vill slippa. I annat fall så handlar det om Linq som jag heller helst inte vill använda - i vart fall inte än.Jag ogillar Microsofts sätt att bygga på med alltfler programnivåer som gör felsökning allt jävligare. Varför kan man inte få använda vanliga ADO.NET som användes i Framework 3.5.

Det är enormt svårt att hitta bland Microsofts webbar. Microsoft.se är helt ointressant. Det verkar mest vara en annonsplats. Det samma gäller den officiella webben www.microsoft.com. Sedan finns MSDN som är den officiella webben för utvecklare. Också är det ASP.net - "The Official Microsoft ASP.NET site". Codeplex är MS site för open software. För att bara nämna några.

Nu gäller det att hitta något om hur man läser från en databas med hjälp av metoderna i Framework 3.5 när man användare Framwork 4. I 3.5-versionen utfördes en läsning med import av namespace, skapa en connection string till databasen och sedan t.ex. ExecuteReader.

Men först ska jag pröva att överföra ett tidigare Framework 3.5-program i VB till Framework 4 i C#. Först gäller det att hitta rätt namespace och inkludera dem med using. Jag behöver System.Data.SqlClient för att accessa databasen och  System.Configuration för att kunna hämta namn och adress till databasen från Web.Config.

Själva koden placerar jag i subrutinen Page_Load
SqlConnection conn; //Variabel för kopplingen till databasen
SqlCommand comm; //Variabel för SQL-kommandot
string connectionString = ConfigurationManager.ConnectionStrings["EnklasteConnectionString1"].ConnectionString; //Hämtar namn och adress till databasen
conn = new SqlConnection(connectionString); //Skapar objekt med koppling till databasen
comm = new SqlCommand("SELECT PageText FROM Page", conn); //Skapar objekt med SQL-satsen
try //Lägger in hantering av undantag, felhantering
 {
                conn.Open(); //Öppnar filen
                SqlDataReader reader = comm.ExecuteReader(); //Läser första posten
                while (reader.Read()) //Så länge det finns en ny post
                {
                    Label1.Text = reader["PageText"]; //Kopiera fältet PageText i tabellen Page till fältet Label1
                }
                reader.Close(); //Avsluta läsningen om det inte finns fler poster
                conn.Close(); //Stäng filen
            }
finally // Om det uppstod ett fel
            {
                conn.Close(); //Stäng filen
            }
}
Och denna kod fungerar bra. Då ska det nog gå bra att skriva post till databasen också. Nu tänker jag nog starta ett nytt projekt.

Inga kommentarer:

Skicka en kommentar