Lecture 06 SQL in C#, Project

Slides:



Advertisements
Similar presentations
Adding a database to web service Add a database – Service->Add new item->SQL server database Add table to database – Server explorer->tables->Add new table.
Advertisements

Chapter Information Systems Database Management.
® IBM Software Group © 2006 IBM Corporation The Eclipse Data Perspective and Database Explorer This section describes how to use the Eclipse Data Perspective,
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.
CSCI 6962: Server-side Design and Programming
CSCI 6962: Server-side Design and Programming JDBC Database 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.
Introduction to MySQL Lab no. 10 Advance Database Management System.
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!
Chapter 8 Collecting Data with Forms. Chapter 8 Lessons Introduction 1.Plan and create a form 2.Edit and format a form 3.Work with form objects 4.Test.
© 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.
Financial Information Management Changing data in a DB Stefano Grazioli.
Agenda Object Oriented Programming Reading: Chapter 14.
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 Introduction to Database Systems CSE 444 Lecture 04: SQL April 7, 2008.
Working with MySQL A290/A590, Fall /07/2014.
1 Working with MS SQL Server Beginning ASP.NET in C# and VB Chapter 12.
1 Lecture 05 Project: C#, ASP,.NET Friday, January 13, 2006.
Financial Information Management Modifying data in a DB Stefano Grazioli.
SQL pepper. Why SQL File I/O is a great deal of code Optimal file organization and indexing is critical and a great deal of code and theory implementation.
Retele de senzori Curs 2 - 1st edition UNIVERSITATEA „ TRANSILVANIA ” DIN BRAŞOV FACULTATEA DE INGINERIE ELECTRICĂ ŞI ŞTIINŢA CALCULATOARELOR.
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.
CS320 Web and Internet Programming SQL and MySQL Chengyu Sun California State University, Los Angeles.
Understand Data Definition Language (DDL) Database Administration Fundamentals LESSON 1.4.
1 Lecture 07 Project Wednesday, October 11, 2006.
Common SQL keywords. Building and using CASE Tools Data Base with Microsoft SQL-Server and C#
CPSC-310 Database Systems
Introduction to Database Processing with ADO.NET
Trigger used in PosgreSQL
Introduction to Database Processing with ADO.NET
SQL – Python and Databases
CS320 Web and Internet Programming SQL and MySQL
Lecture 05: SQL Wednesday, January 12, 2005.
Basic Database Concepts
Principles of Software Development
mysql and mysql workbench
Unit 8.2 How data can be used Accessing Data in Views
Data Virtualization Demoette… Parameterized Queries
Chapter 12 Information Systems.
Information Systems Database Management
02 | Developing ASP.NET MVC 4 Models
Introduction to Database Systems CSE 444 Lecture 04: SQL
STRUCTURED QUERY LANGUAGE
CS 177 Week 15 Recitation Slides
Learning to Program in Python
Introduction to Database Systems CSE 544
Tonga Institute of Higher Education
Database Fundamentals
Teaching slides Chapter 8.
CMPT 354: Database System I
Mobile Computing With Android ACST 4550 Android Database Storage
Computer Science Projects Database Theory / Prototypes
CS3220 Web and Internet Programming SQL and MySQL
These slides are for reference only. They are not "lecture notes"
Queries.
Guidelines for Microsoft® Office 2013
CS3220 Web and Internet Programming SQL and MySQL
M S COLLEGE OF ART’S, COMM., SCI. & BMS Advance Web Programming
Zorah Fung University of Washington, Winter 2016
Presentation transcript:

Lecture 06 SQL in C#, Project Friday, April 6, 2007

Outline SQL in C# Project Phase 1 Read Chapter 8 But note that it does not talk about C# Project Phase 1 Meet our TA: Chi-Wai Lau

C# - Crash Course Hello World Properties (getters/setters) Enums Partial classes Dataset: DataTable, DataRow Connecting to a database http://www.ecma-international.org/activities/Languages/Introduction%20to%20Csharp.pdf

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 !

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

Properties: Getters and Setters 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++; } Point uvw = new Point(); uvw.position = 55; uvw.color = “green”; uvw.position = uvw.position * 2; if (uvw.color == “green”) …

Indexers 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; } } Getters and setters with […] Stuff uvw = new Stuff(); uvw[12] = 55; uvw[99] = uvw[12]*7 + 2;

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

Partial Classes Some fields defined in file 1 Other fields defined in file 2 Why ? Chi-Wai creates file 1, you create file 2

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

DataSet 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”]++;; }

Connecting to a Database Create or edit web.config file Specify iprojsrv, 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

Connecting to a Database /* 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”); SQL = a string !!! “impedance mismatch”

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

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

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

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…

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 much) Things not to worry about: fname or FirstName or PersonFirstName ? varchar(20) or char(200) or varchar(120) ?

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

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 http://iprojsrv.cs.washington.edu/444/Phase1_Example/

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<invoice> GetInvoices() { /* your GetInvoices code goes here */ }

Task 3: Modify Starter Code /* your GetInvoices code goes here */ string s = String.Format( @“SELECT … 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

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

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”]; . . . . . In Provided In you SQL

Time Estimate Task 1: about 9 tables or so 2 hours or more Task 2: try 2 tuples per table 1 hour Task 3: Need to find out WHAT to mofiy in starter code May need to DROP TABLEs then go to Task 1 Total time here: anywhere from 2 to 14