using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Ex10
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//목록보기
private void LoadProducts()
{
//LINQ Code -> Object Collection
NorthwindDataContext db = new NorthwindDataContext();
var products = from p in db.Products
orderby p.ProductID descending
//select p; // SELECT * FROM Product; 와 같다
select new
{
ProductID = p.ProductID,
ProductName = p.ProductName,
//SupplierID = p.SupplierID,
SupplierID = p.Suppliers.CompanyName, //JOIN
CatogoryID = p.Categories.CategoryName, //JOIN
//CatogoryID = p.CategoryID,
Price = p.UnitPrice,
Quantity = p.QuantityPerUnit,
Stock = p.UnitsInStock
};//SELECT productid, productname, ... FROM Pruduct
dataGridView1.DataSource = products;
}
private void button1_Click(object sender, EventArgs e)
{
LoadProducts();
}
//추가
private void button2_Click(object sender, EventArgs e)
{
NorthwindDataContext db = new NorthwindDataContext();
Products product = new Products
{
ProductName = "덴마크 요구르트",
SupplierID = 1,
CategoryID = 1,
UnitPrice = 1000
};
db.Products.InsertOnSubmit(product);
db.SubmitChanges();
LoadProducts();
}
//변경 UPDATE
private void button3_Click(object sender, EventArgs e)
{
NorthwindDataContext db = new NorthwindDataContext();
var products = from p in db.Products
where p.ProductID > 77
orderby p.ProductID descending
select p;
if (products.Count() > 0)
{
Products product = products.First();
product.UnitPrice += 100;
db.SubmitChanges();
LoadProducts();
}
else
MessageBox.Show("수정대상 없음");
}
//삭제
private void button4_Click(object sender, EventArgs e)
{
NorthwindDataContext db = new NorthwindDataContext();
var products = from p in db.Products
where p.ProductID > 77
orderby p.ProductID descending
select p;
if (products.Count() > 0)
{
//메모리상의 변경
db.Products.DeleteOnSubmit(products.First());
//변경내용을 DB에 적용 (Query 수행)
db.SubmitChanges();
LoadProducts();
}
}
}
}
/////////////////////
App.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="Ex10.Properties.Settings.NorthwindConnectionString"
connectionString="Data Source=.;Initial Catalog=Northwind;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>