6237 asp dbconnection

From Teknologisk videncenter
Revision as of 07:40, 1 October 2015 by Orso (talk | contribs) (db connection)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

db connection

For at kunne tilgå en database skal du anvende en connection string.
Den finder du ved at vælge din database og kigge på properties.


Asp dbconnection2pic1.png


Her efter følger en del kode.
Først en pc klasse. Bemærk at klassen arver fra PC Controller


public class Pc : PcCtrl
    {
        private int id;
        public int Id
        {
            get { return id; }
        }

        private string bruger;
        public string Bruger
        {
            get { return bruger; }
            set { bruger = value; }
        }

        private string os;
        public string Os
        {
            get { return os; }
            set { os = value; }
        }

        private int pcNr;
        public int PcNr
        {
            get { return pcNr; }
            set { pcNr = value; }
        }

        public Pc(int id, string bruger, string os, int pcNr)
        {
            this.id = id;
            this.bruger = bruger;
            this.os = os;
            this.pcNr = pcNr;
        }

        public Pc()
        { }
    }


Der efter en PCcontroller. Bemærk at klassen arver fra Controller


public class PcCtrl : Ctrl
    {
        public List<Pc> getPcAll()
        {
            List<Pc> returnLst = new List<Pc>();

            List<Object[]> lst = sendSql("select * from pcer");

            foreach (Object[] o in lst)
            {
                returnLst.Add(new Pc(((int)o[0]),((string)o[1]),((string)o[2]),((int)o[3])));
            }

            return returnLst;
        }
    }


Tilsidst controller klassen. Det er i denne klasse der oprettes forbindelse til databasen. Bemærk også at du her skal sætte din connection string ind.


    public class Ctrl
    {
        protected List<Object[]> sendSql(String sqlString)
        {
            //Opret et dictionary vi kan returnerer data i
            List<Object[]> returnValue = new List<Object[]>(); 
            
            //Indsæt din connection string fra database properties
            string conStr = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\orso\Documents\mytestdb.mdf;Integrated Security=True;Connect Timeout=30";
            
            //Opret en connetion og åben
            SqlConnection connection = new SqlConnection(conStr);
            connection.Open(); //here it gives the exception

            //Opret en sql command og knyt den til din connection, indsæt også sqlString som vi fik i parametre
            System.Data.Common.DbCommand cmd = connection.CreateCommand();
            cmd.CommandText = sqlString;
            cmd.Connection = connection;

            //Udfør sql command og læg resultatet i DbDataReader
            System.Data.Common.DbDataReader reader = cmd.ExecuteReader();
            
            while (reader.Read())
            {
                Object[] row = new Object[reader.FieldCount];
                for (int i = 0; i < reader.FieldCount; i++)
                {
                    row[i] = reader.GetValue(i);
                }

                returnValue.Add(row);
            }
            connection.Close();
            return returnValue;
        }
    }