public DataSet GenerateDataSet(SqlCommand dbcommand, String tablename, out String errormsg) { errormsg = "";

Relevanta dokument
Stored procedure i ASP.NET

ADO.NET Murach Kapitel 17-20

Stored procedure i ASP.NET

Arbeta med databas. Översikt. Lektion 1: Arbeta med Entity Data Models. Arbeta med Entity Data Models. LINQ (Language Integrated Query).

// GET: Test1/Index2 // Syftet är att se hur olika url:er leder till olika actions

Asp.net mvc intro PER KVARNBRINK,

Lab 6: ASP.NET 2.0 Providermodellen

Language Integrated Query, LINQ, och databaser

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga

Grundläggande programmering med C# 7,5 högskolepoäng

Transaktioner. 1. Transaktioner 2. Samtidighet ( concurrency ) och lås. 3. Deadlock. Kap. 17. Informatik B: Databashantering med SQL Server

Att jobba mot en DAL-class, del 1

Övning Dictionary. Övning 1. Steg 1: På din virtuella maskin, starta Visual Studio.

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)

Generiska konstruktioner. Kursbokens kapitel 13

TENTAMEN DATABASKUNSKAP ITEK12

Övning MS SQL och MVC del 2

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Tentamen DE14, IMIT14 och SYST14 samt öppen för alla

Lär känna MS SQL 2008 / Övning. Observera. Tips. Förberedelse

Objektorienterad Programmering (OOP) Murach s: kap 12-16

Föreläsning 3. Stack

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

Labb LABB 1. Databassagan och en rundtur i databasers märkliga värld. Plushögskolan Frågeutveckling inom MSSQL - SU14

Lösningsförslag till tentamen

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

TDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 14-16

Exceptions (undantag) Murach s: kap 7

Databaser - Design och programmering. Kursöversikt. Exempel: telefonbok. Varför databaser?

Grundläggande programmering med C# 7,5 högskolepoäng. Provmoment: Ladokkod: Tentamen ges för: TEN1 NGC011 ADAEK17, ASYST17 samt öppen för alla

F6 Objektorienterad design. ID1004 Objektorienterad programmering Fredrik Kilander

Dagens föreläsning. Sett i datorsalarna. Mer om arrayer. Matriser. Formatering av utskrifter. Inläsning med hjälp av Scanner-klassen

1.Lär känna MS SQL Observera. Tips. Förberedelse

tentaplugg.nu av studenter för studenter

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU

SQL. Structured Query Language. Frågespråk för att används för. Kommandon. data åtkomst data manipulation

public och private Obs: private inte skyddar mot access från andra objekt i samma klass.

WCMS-15, Webbutvecklare CMS

VAD GÖR DU / VEM ÄR DU?

1. PLSQL 2 2. Select into

Outline. Objektorienterad Programmering (TDDC77) En frukt har ett namn. Man kan lägga en frukt i en korg... Hashing. Undantag. Ahmed Rezine.

Objektorienterad Programmering (TDDC77)

Databaser och Datamodellering Foreläsning IV

Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt

Tentamen FYTA11 Javaprogrammering

D1. Create Domain TEXT30 char(30) Default INGET VÄRDE! ;

ASP.NET MVC. Copyright Mahmud Al Hakim Innehåll

Klassen BST som definierar binära sökträd med tal som nycklar och enda data. Varje nyckel är unik dvs förekommer endast en

Att skriva till och läsa från terminalfönstret

LabPortalen Services 2.14

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Objektorienterad Programmering (TDDC77)

Vad kännetecknar en god klass. Vad kännetecknar en god klass. F12 Nested & Inner Classes

Innehåll. Föreläsning 3. javax.naming.context. javax.sql.datasource. Vad är JDBC? Java Naming and Directory Interface(JNDI) Viktigaste metoder:

Tentamen Datastrukturer (DAT037)

Klientprogrammering mot databaser

Du skall naturligtvis visa körexempel med output där det behövs i din rapport!

Tommy Färnqvist, IDA, Linköpings universitet

LÖSNINGSFÖRSLAG

Föreläsning 4. ADT Kö Kö JCF Kö implementerad med en cirkulär array Kö implementerad med en länkad lista

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Tentamen, EDA690 Algoritmer och Datastrukturer, Helsingborg

public interface Skrivbar { void skriv(); } public class Punkt implements Skrivbar { public double x; public double y;

Länkade strukturer. (del 2)

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Programmering för språkteknologer II, HT2011. Rum

Innehåll. dynamisk bindning. och programmering CRC) u Arv, polymorfi och

VAD GÖR DU / VEM ÄR DU?

Labb LIVE. Exempelkod från föreläsningen. Plushögskolan Frågeutveckling inom MSSQL - SU14

4 13 / %.; 8 </" '': " / //&' " " ' * TelefonKostnad +,-%&. #!" $% " &' . > / ' 5 /' * 13/ &' static Math 1+" &'/ % 12 "" static "' * 1 /") %& &

Lösningsförslag till tentamen i EDA690 Algoritmer och Datastrukturer, Helsingborg

Programmering i C++ EDA623 Något om C# EDA623 (Föreläsning 14) HT / 17

Tabeller och kolumner SQL. Lägga till en ny post. Lägga till en ny post

1. SQL DDL (Data Definition Language) 2. Skapa tabell

Föreläsning 3-4 Innehåll

TDIU01 - Programmering i C++, grundkurs

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

Föreläsning 3. Stack

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

if (n==null) { return null; } else { return new Node(n.data, copy(n.next));

Lösningsförslag till tentamen i EDA011, lördagen den 16 december 2006

Objektsamlingar i Java

Fördjupad Java. Undantagshantering. Fel

Starta MySQL Query Browser

Undantagshantering. Fördjupad Java. Fel. Undantag. Fånga Undantag. Grupper av Undantag

Undantagshantering. Fördjupad Java. Undantag. Fel. Grupper av Undantag. Fånga Undantag

FNTSK SKNNK Fonetisk sökning

Funktionell programmering DD1361

Databaser. Jan Erik Moström, Department of Computing Science, Umeå University - jem@cs.umu.se

Parsing med Recursive Descent, Avbildningsklasser. Syntaxdiagram. Syntaxdiagram och kodning expression. Betrakta följande uttryck

Mål med lektionen! Repetera och befästa kunskaperna.

Dagens föreläsning. Arrayer och klasser. Medan ni väntar: Gå till m.voto.se/prog11 och svara på några gamla tentamensfrågor! (26 januari 2018 F3 1 )

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.

Malmö högskola 2012/2013 Teknik och samhälle

Sätta upp e-post server Ubuntu 14.04, del 1 installation av programvara, konfiguration av mysql och Postfix

TDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 17-19

TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 14-18

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Transkript:

using System; using System.Collections.Generic; using System.Linq; using System.Web; // Namespaces för SQL Server och ADO.NET using System.Data.SqlClient; using System.Data; // Namespace för inläsning av data från Web.Config using System.Configuration; namespace HobbyDb.Models /// Klassen anropas från klassen UserMethods public class PocoDb public PocoDb() // Koppling mot SQL Server dbconnection.connectionstring = "Data Source=(LocalDB)\\v11.0; AttachDbFilename=m:\\Libraray\\Dokument\\visual studio 2013\\Projects\\HobbyDb\\HobbyDb\\App_Data\\Hobbies.mdf; Integrated Security=True"; //dbconnection.connectionstring = ConfigurationManager.ConnectionStrings["SQLLocal"].ConnectionString; // Skapa SqlConnection public SqlConnection dbconnection = new SqlConnection(); public DataSet GenerateDataSet(SqlCommand dbcommand, String tablename, out String errormsg) errormsg = ""; SqlDataAdapter dbadapter = new SqlDataAdapter(dbCommand); DataSet dataset = new DataSet(); dbconnection.open(); dbadapter.fill(dataset, tablename); return (dataset); errormsg = e.message; return null; dbconnection.close();

public int ExecuteNonQuery(SqlCommand dbcommand, out string msg) msg = ""; int i = 0; dbconnection.open(); i = dbcommand.executenonquery(); msg = e.message; dbconnection.close(); return i; // end of class PocoDb public class PocoModel public IEnumerable<UserDetail> ListaMedUserDetail get; set; /// Userdetail är användarobjektet som används för /// autentisering, namn, roller, olika adresser m.m. public class UserDetail /// Empty constructor public UserDetail() en int public string Id get; set; //Notera: Detta är en string - i databasen är det public string ForName get; set; public string EfterNamn get; set; public string Email get; set; public int YearOfBirth get; set; public int LivesID get; set; /// UserMethods innehåller metoder för att skapa, uppdatera, hämta och ta bort userobjekt public class UserMethods

/// Empty constructor public UserMethods() /// Metoden lägger till en user i databasen. /// <param name="ud">skicka in en UserDetail som får ett id, en string, när den läggt till i databasen</param> /// <param name="errormsg">="1" om allt är ok och =sql felmeddelande om det blir ett fel</param> /// <returns>om allt går som det ska returnerar den guid-värdet som en sträng, i annat fall en allmännt hållen text</returns> public String InsertUser(UserDetail ud, out string errormsg) PocoDb pdb = new PocoDb(); // sqlstring och lägg till en user i databasen String sqlstring = "INSERT INTO Person ( Fornamn, Efternamn, Fodelsear, Epost, Bor) VALUES (@firstname,@lastname,@dateofbirth,@email,@placetolive)"; SqlCommand dbcommand = new SqlCommand(sqlstring, pdb.dbconnection); dbcommand.parameters.add("firstname", SqlDbType.NVarChar, 30).Value = ud.forname; dbcommand.parameters.add("lastname", SqlDbType.NVarChar, 30).Value = ud.efternamn; dbcommand.parameters.add("dateofbirth", SqlDbType.Int).Value = ud.yearofbirth; dbcommand.parameters.add("email", SqlDbType.NVarChar, 50).Value = ud.email; dbcommand.parameters.add("placetolive", SqlDbType.Int).Value = ud.livesid; int i = 0; string local_errormsg = ""; i = pdb.executenonquery(dbcommand, out local_errormsg); if (i == 1) errormsg = ""; else errormsg = "Error nr 401, det skapas inte en user"; return (i.tostring()); errormsg = "Error nr 402 " + e.message; return ("Ett fel har uppstått i datahanteringen och det exakta felmeddelande visas inte av säkerhetsskäl. Notera hur felet uppstod och kontakta Per Kvarnbrink."); /// GetUser - Metoden hämtar ett userobjekt

/// <param name="userid">en string som innehåller id:t till userdetail</param> /// <param name="errormsg">felmeddelande ut från metoden</param> /// <returns>returnerar ett objekt om det finns, annars null</returns> public UserDetail GetUser(string userid, out string errormsg) PocoDb pdb = new PocoDb(); // sqlstring och lägg till en user i databasen String sqlstring = "Select * From Person Where Id = @id"; SqlCommand dbcommand = new SqlCommand(sqlstring, pdb.dbconnection); //omvandla stringvädet som är ett id till ett guid int local_id = Convert.ToInt32(userid); dbcommand.parameters.add("id", SqlDbType.Int).Value = local_id; //skapa en adapter DataSet myds = new DataSet(); UserDetail ud = new UserDetail(); string local_errormsg = ""; myds = pdb.generatedataset(dbcommand, "myuser", out local_errormsg); int count = 0; count = myds.tables["myuser"].rows.count; if (count > 0) // Läser ut data från datasetet ud.id = myds.tables["myuser"].rows[0]["id"].tostring(); ud.forname = myds.tables["myuser"].rows[0]["fornamn"].tostring(); ud.efternamn = myds.tables["myuser"].rows[0]["efternamn"].tostring(); ud.email = myds.tables["myuser"].rows[0]["epost"].tostring(); ud.livesid = Convert.ToInt32(myDS.Tables["myUser"].Rows[0]["Bor"].ToString()); ud.yearofbirth = Convert.ToInt32(myDS.Tables["myUser"].Rows[0]["Fodelsear"].ToString()); errormsg = ""; return (ud); else errormsg = "Error nr 403. Det hämtas ingen user."; return (null); errormsg = "Error nr 404. " + e.message; return null;