Skip to content

Instantly share code, notes, and snippets.

@pokonski
Created December 9, 2011 08:53
Show Gist options
  • Save pokonski/1450792 to your computer and use it in GitHub Desktop.
Save pokonski/1450792 to your computer and use it in GitHub Desktop.
DataSet
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Collections;
namespace DataSet
{
class Program
{
static void Main(string[] args)
{
// Przykladowe dane
string[] categories = {"Thriller","Comedy", "Crime","Action"};
Hashtable movies = new Hashtable();
movies["Thriller"] = new string[] {"Valkyrie","In time","Drive"};
movies["Action"] = new string[] {"Transformers 1", "Bad boys"};
movies["Crime"] = new string[] {"The goodfellas","L.A Confidential"};
movies["Comedy"] = new string[] { "Crazy. Stupd. Love", "The Hangover" };
// Tabelki:
DataTable categoryTable = new DataTable("Category");
DataTable movieTable = new DataTable("Movie");
// Kolumny categories
categoryTable.Columns.Add("id", Type.GetType("System.Int32"));
categoryTable.Columns.Add("name", Type.GetType("System.String"));
categoryTable.Columns["id"].AutoIncrement = true;
categoryTable.Columns["id"].AutoIncrementSeed = 1;
categoryTable.Columns["id"].AutoIncrementStep = 1;
categoryTable.Columns["id"].ReadOnly = true;
categoryTable.Columns["id"].Unique = true;
// Kolumny movies
movieTable.Columns.Add("id", Type.GetType("System.Int32"));
movieTable.Columns.Add("category_id",Type.GetType("System.Int32"));
movieTable.Columns.Add("title", Type.GetType("System.String"));
movieTable.Columns["id"].AutoIncrement = true;
movieTable.Columns["id"].AutoIncrementSeed = 1;
movieTable.Columns["id"].AutoIncrementStep = 1;
movieTable.Columns["id"].ReadOnly = true;
movieTable.Columns["id"].Unique = true;
// foreign key
ForeignKeyConstraint fkCategoryId = new ForeignKeyConstraint(
"FK_category_id",
categoryTable.Columns["ID"],
movieTable.Columns["category_id"]);
fkCategoryId.AcceptRejectRule = AcceptRejectRule.Cascade;
fkCategoryId.DeleteRule = Rule.SetNull;
fkCategoryId.UpdateRule = Rule.Cascade;
movieTable.Constraints.Add(fkCategoryId);
foreach (string name in categories)
{
DataRow row = categoryTable.NewRow();
row["name"] = name;
categoryTable.Rows.Add(row);
foreach (string movie in (string[])movies[name]){
DataRow movieRow = movieTable.NewRow();
movieRow["title"] = movie;
movieRow["category_id"] = row["id"];
movieTable.Rows.Add(movieRow);
}
}
// Drukowanie kategorii
Console.WriteLine("KATEGORIE:");
foreach (DataRow r in categoryTable.Rows)
{
foreach (DataColumn c in categoryTable.Columns)
Console.Write(r[c] + "\t");
Console.WriteLine();
}
// Drukowanie filmow
Console.WriteLine("\n\nFILMY:");
foreach (DataColumn c in movieTable.Columns)
Console.Write(c.ColumnName + "\t");
Console.WriteLine("\n------------------------------------------------");
foreach (DataRow r in movieTable.Rows)
{
Console.Write(r["id"] + "\t");
Console.Write(r["category_id"] + "\t\t");
Console.Write(r["title"] + "\t");
Console.WriteLine();
}
Console.ReadLine();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment