6237 asp dbconnection

From Teknologisk videncenter
Revision as of 14:58, 29 September 2015 by Orso (talk | contribs) (Created page with "===db connection=== For at kunne tilgå en database skal du anvende en connection string.<br> Den finder du ved at vælge din database og kigge på properties. [[File:asp_db...")
(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.


[[File: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;
        }
    }