1 Lecture 07 Project Wednesday, October 11, 2006.

Slides:



Advertisements
Similar presentations
Chapter Information Systems Database Management.
Advertisements

Introduction to Database Processing with ADO.NET.
SUNY Morrisville-Norwich Campus-Week 12 CITA 130 Advanced Computer Applications II Spring 2005 Prof. Tom Smith.
Performed by:Gidi Getter Svetlana Klinovsky Supervised by:Viktor Kulikov 08/03/2009.
MIS2502: Data Analytics MySQL and SQL Workbench David Schuff
From VS C# 2010 Programming, John Allwork 1 VS2010 C# Programming - DB intro 1 Topics – Database Relational - linked tables SQL ADO.NET objects Referencing.
Structured Query Language (SQL) A2 Teacher Up skilling LECTURE 2.
1 CSC 440 Database Management Systems JDBC This presentation uses slides and lecture notes available from
CSCI 6962: Server-side Design and Programming
BIT 286: Web Applications Lecture 04 : Thursday, January 15, 2015 ASP.Net MVC - Models.
If This Bar Is Light Blue – It Is Info That You Should Read! Helpful Hint There Will Often Be A Colored Title Bar At The Top Of A Slide.
ADO.NET A2 Teacher Up skilling LECTURE 3. What’s to come today? ADO.NET What is ADO.NET? ADO.NET Objects SqlConnection SqlCommand SqlDataReader DataSet.
PHP meets MySQL.
Database Programming Dr. John Abraham. Data Sources Data source specifies the source of the data for an application. Click on Data from Menu Choose show.
1 Working with MS SQL Server Textbook Chapter 14.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 Working with MSSQL Server Code:G0-C# Version: 1.0 Author: Pham Trung Hai CTD.
Introduction to MySQL Lab no. 10 Advance Database Management System.
Web Scripting [PHP] CIS166AE Wednesdays 6:00pm – 9:50pm Rob Loy.
Java Quiz Bowl A fun review of the Java you should know from CMPT 201 If you don’t know the answers - this week is for you to study up!
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 Working with Disconnected Data The DataSet and SqlDataAdapter ADO.NET - Lesson.
1 Introduction to Database Systems CSE 444 Lecture 06 SQL in C#, Project October 5, 2007.
ASP.NET Rina Zviel-Girshin Lecture 5
Financial Information Management Changing data in a DB Stefano Grazioli.
Agenda Object Oriented Programming Reading: Chapter 14.
Mauricio Featherman, Ph.D. Washington St. University
SQL John Nowobilski. What is SQL? Structured Query Language Manages Data in Database Management Systems based on the Relational Model Developed in 1970s.
1 11/15/05CS360 Windows Programming ADO.NET Continued.
Task #1 Create a relational database on computers in computer classroom 308, using MySQL server and any client. Create the same database, using MS Access.
ADO.NET FUNDAMENTALS BEGINNING ASP.NET 3.5 IN C#.
1 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Processing  Install Processing  Learn how to edit, run, save, export,
Working with MySQL A290/A590, Fall /07/2014.
1 Working with MS SQL Server Beginning ASP.NET in C# and VB Chapter 12.
CS/ENGRD 2110 FALL 2013 Lecture 3: Fields, getters and setters, constructors, testing 1.
1 Lecture 05 Project: C#, ASP,.NET Friday, January 13, 2006.
Financial Information Management Modifying data in a DB Stefano Grazioli.
Retele de senzori Curs 2 - 1st edition UNIVERSITATEA „ TRANSILVANIA ” DIN BRAŞOV FACULTATEA DE INGINERIE ELECTRICĂ ŞI ŞTIINŢA CALCULATOARELOR.
MYSQL AND MYSQL WORKBENCH MIS2502 Data Analytics.
CS 440 Database Management Systems Stored procedures & OR mapping 1.
Databases and SQL CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
Understand Data Definition Language (DDL) Database Administration Fundamentals LESSON 1.4.
COM621: Advanced Interactive Web Development Lecture 10 PHP and MySQL.
Common SQL keywords. Building and using CASE Tools Data Base with Microsoft SQL-Server and C#
Introduction to Database Processing with ADO.NET
Introduction to Database Processing with ADO.NET
CS320 Web and Internet Programming SQL and MySQL
Lecture 05: SQL Wednesday, January 12, 2005.
Inheritance Based on slides by Ethan Apter
mysql and mysql workbench
Unit 8.2 How data can be used Accessing Data in Views
Chapter 12 Information Systems.
Information Systems Database Management
MS-Access (database) how to create blank data base.
Translation of ER-diagram into Relational Schema
02 | Developing ASP.NET MVC 4 Models
Introduction to Database Systems CSE 444 Lecture 04: SQL
IS 220 Databases Fundamentals
Learning to Program in Python
Introduction to Database Systems CSE 544
Tonga Institute of Higher Education
RELATIONAL DATABASES AND XML
CMPT 354: Database System I
MIS2502: Data Analytics MySQL and SQL Workbench
Computer Science Projects Database Theory / Prototypes
Lab 2 HRP223 – 2010 October 18, 2010 Copyright © Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected.
CS3220 Web and Internet Programming SQL and MySQL
These slides are for reference only. They are not "lecture notes"
Queries.
CS3220 Web and Internet Programming SQL and MySQL
Lecture 06 SQL in C#, Project
M S COLLEGE OF ART’S, COMM., SCI. & BMS Advance Web Programming
Presentation transcript:

1 Lecture 07 Project Wednesday, October 11, 2006

2 Phase 1 Task 1: Schema design Task 2: Import sample data Task 3: Modify starter code

3 Task 1: Schema Design Official requirement Read the project description Design a “good” database schema

4 Task 1: Schema Design What you should do: Read description AND look inside the starter code App_code/Provided/… Read the classes, determine the fields…

5 Task 1: Schema Design Optional: draw an E/R diagram Create a file: Create a second file: (why ?) CREATE TABLE Customer (... ) CREATE TABLE Invoice (... )... CREATE TABLE Customer (... ) CREATE TABLE Invoice (... )... DROP TABLE Customer DROP TABLE Invoice... DROP TABLE Customer DROP TABLE Invoice...

6 Task 1: Schema Design Things to worry about: Keys/foreign keys: note table order matters! Make sure you represent all the data Null-able or not (don’t worry too muchh) Things not to worry about: fname or FirstName or PersonFirstName ? varchar(20) or char(200) or varchar(120) ?

7 Task 2: Import Sample Data Create a file: You may need to run this: (why ?) INSERT INTO Customer (... ) VALUES (‘John’, ….) INSERT INTO Customer (... ) VALUES (‘Sue’, ….)... INSERT INTO Customer (... ) VALUES (‘John’, ….) INSERT INTO Customer (... ) VALUES (‘Sue’, ….)... DROP TABLE Customer DROP TABLE Invoice... DROP TABLE Customer DROP TABLE Invoice...

8 Task 3: Modify Starter Code The starter code: C# ASP.NET (you do not need to understand it) It provides a Website for accessing your online store BUT it misses the fragments of code that get the data from the database See Example/ Example/

9 C# - Crash Course Hello World Properties (getters/setters) Enums Partial classes Dataset: DataTable, DataRow Connecting to a database

10 C# - Highlights C# = C++.Sytnax + Java.Semantics It is a “safe” language (like Java) Can be embedded in Webpages Can access a database –Complex, but you should see the predecessors !

11 using System; class Hello { static void Main() { Console.WriteLine("Hello world"); } using System; class Hello { static void Main() { Console.WriteLine("Hello world"); } Hello World

12 public class Point { private int x; private string c; public int position { get { return x; } set { x = value; c = “red”; } } public string color { get { return c; } set { c = value; x++; } } public class Point { private int x; private string c; public int position { get { return x; } set { x = value; c = “red”; } } public string color { get { return c; } set { c = value; x++; } } Properties: Getters and Setters Point uvw = new point(); uvw.position = 55; uvw.color = “green”; uvw.position = uvw.position * 2; if (uvw.color == “green”) … Point uvw = new point(); uvw.position = 55; uvw.color = “green”; uvw.position = uvw.position * 2; if (uvw.color == “green”) …

13 Indexers Getters and setters with […] public class Stuff { private int x[]; public int this[int i] { get {x[2*i+1]=0; return x[2*i]; } set { x[2*i] = value; x[2*i+1]=1; } } public class Stuff { private int x[]; public int this[int i] { get {x[2*i+1]=0; return x[2*i]; } set { x[2*i] = value; x[2*i+1]=1; } } Stuff uvw = new Stuff(); uvw[12] = 55; uvw[99] = uvw[12]*7 + 2; Stuff uvw = new Stuff(); uvw[12] = 55; uvw[99] = uvw[12]*7 + 2;

14 enum Color: byte { Red = 1, Green = 2, Blue = 4, Black = 0, White = Red | Green | Blue, } enum Color: byte { Red = 1, Green = 2, Blue = 4, Black = 0, White = Red | Green | Blue, } Enum

15 Partial Classes Some fields defined in file 1 Other fields defined in file 2 Why ? Brian creates file 1, you create file 2

16 Dataset This is an important class that allows you to interact with a database Dataset = a “mini” database in main memory DataTable DataRow

17 DataSet myLocalDB = new DataSet(); /* create inside a table called “books” */..... /* (this is shown on a following slide) */ /* now use “books” */ DataTable x = myLocalDB.Tables[“books”] foreach (DataRow y in x.Rows) { if (y[“title”] == “Harry Potter”) y[“price”]++;; } DataSet myLocalDB = new DataSet(); /* create inside a table called “books” */..... /* (this is shown on a following slide) */ /* now use “books” */ DataTable x = myLocalDB.Tables[“books”] foreach (DataRow y in x.Rows) { if (y[“title”] == “Harry Potter”) y[“price”]++;; } DataSet

18 Connecting to a Database Create or edit web.config file –Specify iisqlsrv, user, password –Give a ‘name’ Create a SqlConnection –refer to ‘name’ Create a SqlDataAdaptor –embed SQL query string Execute the Fill( ) method to run query and store answers in a datarow

19 /* create inside a table called “books” */ SqlConnection c = new SqlConnection(... “name”...); string q = “select title, price year from products where price < 100”; SqlDataAdapter a = new SqlDataAdapter(q, c); DataSet myLocalDB = new DataSet(); a.Fill(myLocalDB, “books”); /* create inside a table called “books” */ SqlConnection c = new SqlConnection(... “name”...); string q = “select title, price year from products where price < 100”; SqlDataAdapter a = new SqlDataAdapter(q, c); DataSet myLocalDB = new DataSet(); a.Fill(myLocalDB, “books”); Connecting to a Database SQL = a string !!! “impedance mismatch”

20 Task 3: Modify Starter Code What you have to do: App_Code/Phase1/Billing and Shipping/… Public partial class Customer { /* add your own fields, like: */ private int id, Procedure List GetInvoices() { /* your GetInvoices code goes here */ } Public partial class Customer { /* add your own fields, like: */ private int id, Procedure List GetInvoices() { /* your GetInvoices code goes here */ }

21 Task 3: Modify Starter Code /* your GetInvoices code goes here */ string s = … FROM …. WHERE x.customerId = {0} …”, id); StoreContext store = StoreContext.current; DataSet ds = new DataSet( ); DataTable invoices = store.GetDataTable(s, ds, “invoices”); /* continued on next slide…. */ /* your GetInvoices code goes here */ string s = … FROM …. WHERE x.customerId = {0} …”, id); StoreContext store = StoreContext.current; DataSet ds = new DataSet( ); DataTable invoices = store.GetDataTable(s, ds, “invoices”); /* continued on next slide…. */ Substitutes id for {0} Defined in Provided

22 Task 3: Modify Starter Code /* … continued from previous slide */ List invoiceList new List ( ); foreach(datarow r in invoices.Rows) { invoiceList.Add(new Invoice( r )); } return invoiceList; } /* … continued from previous slide */ List invoiceList new List ( ); foreach(datarow r in invoices.Rows) { invoiceList.Add(new Invoice( r )); } return invoiceList; } Now you need to implement this

23 Task 3: Modify Starter Code public partial class Invoice { public Invoice(DataRow invoiceData) { /* here goes your code, something like that: */ init(invoiceData); /* may need it in several places */ }.. private void init(DataRow invoiceData) { invoiceId = (int) invoiceData[“invoiceId”]; orderDate = (DateTime) invoiceData[“date”];..... public partial class Invoice { public Invoice(DataRow invoiceData) { /* here goes your code, something like that: */ init(invoiceData); /* may need it in several places */ }.. private void init(DataRow invoiceData) { invoiceId = (int) invoiceData[“invoiceId”]; orderDate = (DateTime) invoiceData[“date”];..... In Provided In you SQL

24 Time Estimate Task 1: about 9 tables or so, 2 hours or more Task 2: try 2 tuples per table, 1 hour Task 3: here’s when you’ll discover that tasks 1 and 2 are bad: DROP TABLEs then go to Task 1 (should be faster 2 nd time). Total time here: ??? Brian will be in the lab for questions: WHEN ?