From 9823d2d8ea44b552b0583638e93f2376bc1bf399 Mon Sep 17 00:00:00 2001 From: Gonzalo Paniagua Javier Date: Sat, 27 Jul 2002 15:27:54 +0000 Subject: [PATCH] Removed old file and added some info que a DB error happens. svn path=/trunk/gtk-sharp/; revision=6214 --- sample/DbClient/DbClient.cs | 333 ------------------------------------ sample/DbClient/client.cs | 22 ++- 2 files changed, 21 insertions(+), 334 deletions(-) delete mode 100644 sample/DbClient/DbClient.cs diff --git a/sample/DbClient/DbClient.cs b/sample/DbClient/DbClient.cs deleted file mode 100644 index 7125a9a45..000000000 --- a/sample/DbClient/DbClient.cs +++ /dev/null @@ -1,333 +0,0 @@ -using System; -using System.Collections; -using System.Data; -using System.Data.SqlClient; - -using Gtk; -using Gdk; -using Gnome; -using GtkSharp; - -public class BrowseTab : VBox -{ - private Button goFirst; - private Button goPrev; - private Button goNext; - private Button goLast; - private TextView id; - private TextView nameData; - private TextView address; - - public BrowseTab () : base (false, 0) - { - Table table = new Table (3, 3, true); - table.Attach (new Label ("ID: "), 0, 1, 0, 1); - table.Attach (new Label ("Name: "), 0, 1, 1, 2); - table.Attach (new Label ("Address: "), 0, 1, 2, 3); - table.Attach (ID, 1, 2, 0, 1); - table.Attach (NameData, 1, 2, 1, 2); - table.Attach (Address, 1, 2, 2, 3); - - HBox hbox = new HBox (false, 0); - hbox.PackStart (ButtonFirst); - hbox.PackStart (ButtonPrev); - hbox.PackStart (ButtonNext); - hbox.PackStart (ButtonLast); - - this.PackStart (table, false, false, 0); - this.PackStart (hbox, false, false, 0); - } - - public Widget ButtonFirst - { - get { - if (goFirst == null) - goFirst = Button.NewFromStock (Stock.GotoFirst); - return goFirst; - } - } - - public Widget ButtonPrev - { - get { - if (goPrev == null) - goPrev = Button.NewFromStock (Stock.GoBack); - return goPrev; - } - } - - public Widget ButtonNext - { - get { - if (goNext == null) - goNext = Button.NewFromStock (Stock.GoForward); - return goNext; - } - } - - public Widget ButtonLast - { - get { - if (goLast == null) - goLast = Button.NewFromStock (Stock.GotoLast); - return goLast; - } - } - - public Widget ID - { - get { - if (id == null) - id = new TextView (); - return id; - } - } - - public Widget NameData - { - get { - if (nameData == null) - nameData = new TextView (); - return nameData; - } - } - - public Widget Address - { - get { - if (address == null) - address = new TextView (); - return address; - } - } -} - -public class GtkDbClient { - - static Window window; - static Notebook notebook = null; - static BrowseTab browse; - - static void Main () - { - Application.Init (); - window = new Window ("Database client"); - window.DeleteEvent += new DeleteEventHandler (Window_Delete); - VBox box = new VBox (false, 0); - notebook = new Notebook (); - - box.PackStart (CreateMenu (), false, false, 0); - box.PackStart (notebook, false, false, 0); - - browse = new BrowseTab (); - AddPage ("Browse", browse); - AddPage ("Insert", new Label ("Insert")); - AddPage ("Remove", new Label ("Remove")); - AddPage ("Update", new Label ("Update")); - - window.Add (box); - window.ShowAll (); - Application.Run (); - } - - static Gtk.MenuBar CreateMenu () - { - MenuBar mb = new MenuBar (); - Menu file_menu = new Menu (); - - ImageMenuItem close_item = new ImageMenuItem ("Close"); - close_item.Image = new Image (Stock.Close, IconSize.Menu); - ImageMenuItem quit_item = new ImageMenuItem ("Quit"); - quit_item.Image = new Image (Stock.Quit, IconSize.Menu); - - quit_item.Activated += new EventHandler (Quit_Activated); - - file_menu.Append (new SeparatorMenuItem ()); - file_menu.Append (close_item); - file_menu.Append (quit_item); - - MenuItem file_item = new MenuItem ("_File"); - file_item.Submenu = file_menu; - - mb.Append (file_item); - - Menu help_menu = new Menu (); - MenuItem help_item = new MenuItem ("_Help"); - help_item.Submenu = help_menu; - MenuItem about = new MenuItem ("About"); - about.Activated += new EventHandler (About_Box); - help_menu.Append (about); - mb.Append (help_item); - - return mb; - } - - static void AddPage (string title, Widget child) - { - notebook.AppendPage (child, new Label (title)); - } - - static void About_Box (object o, EventArgs args) - { - string [] authors = new string [] { - "Rodrigo Moya (rodrigo@ximian.com", - "Gonzalo Paniagua (gonzalo@ximian.com)", - "Duncan Mak (duncan@ximian.com)", - }; - - string [] documenters = new string [] {}; - - Gnome.About about = new Gnome.About ("Gtk# Db Client", "0.1", - "Copyright (C) 2002, Ximian Inc.", - "A Sample Database client", - authors, documenters, "", new Pixbuf ()); - about.Show (); - } - - static void Window_Delete (object o, DeleteEventArgs args) - { - Application.Quit (); - args.RetVal = true; - } - - static void Quit_Activated (object o, EventArgs args) - { - Application.Quit (); - } -} - -class DbData -{ - private uint id; - private string name; - private string address; - - private DbData () {} - - public DbData (uint id, string name, string address) - { - this.id = id; - this.name = name; - this.address = address; - } - - public uint Id - { - get { return id; } - } - - public string Name - { - get { return name; } - } - - public string Address - { - get { return address; } - } -} - -class IdConnection : IDisposable -{ - private SqlConnection cnc; - private bool disposed; - - public IdConnection () - { - cnc = new SqlConnection (); - string connectionString = "hostaddr=127.0.0.1;" + - "user=monotest;" + - "password=monotest;" + - "dbname=monotest"; - - cnc.ConnectionString = connectionString; - try { - cnc.Open (); - } catch (Exception){ - cnc = null; - throw; - } - } - - public void Insert (uint id, string name, string address) - { - string insertCmd = String.Format ("INSERT INTO customers VALUES ({0}, '{1}', '{2}')", - id, name.Trim (), address.Trim ()); - IDbCommand insertCommand = cnc.CreateCommand(); - insertCommand.CommandText = insertCmd; - insertCommand.ExecuteNonQuery (); - } - - public void Delete (int id) - { - string deleteCmd = String.Format ("DELETE FROM customers WHERE id = {0}", id); - IDbCommand deleteCommand = cnc.CreateCommand(); - deleteCommand.CommandText = deleteCmd; - deleteCommand.ExecuteNonQuery (); - } - - public bool Update (int id, string name, string address) - { - string updateCmd = String.Format ("UPDATE customers SET name = '{1}', address = '{2}' WHERE id = {0}", - id, name.Trim (), address.Trim ()); - IDbCommand updateCommand = cnc.CreateCommand(); - updateCommand.CommandText = updateCmd; - bool updated = false; - return (updateCommand.ExecuteNonQuery () != 0); - } - - public ArrayList SelectAll () - { - IDbCommand selectCommand = cnc.CreateCommand(); - string selectCmd = "SELECT id, name, address FROM customers ORDER by id"; - selectCommand.CommandText = selectCmd; - IDataReader reader = selectCommand.ExecuteReader (); - return FillDataList (reader); - } - - public DbData Select (int id) - { - IDbCommand selectCommand = cnc.CreateCommand(); - string selectCmd = "SELECT id, name, address FROM customers WHERE id = " + id; - selectCommand.CommandText = selectCmd; - IDataReader reader = selectCommand.ExecuteReader (); - ArrayList list = FillDataList (reader); - return (DbData) list [0]; - } - - private ArrayList FillDataList (IDataReader reader) - { - ArrayList list = new ArrayList (); - while (reader.Read ()) { - DbData data = new DbData ((uint) reader.GetValue (0), - (string) reader.GetValue (1), - (string) reader.GetValue (2)); - list.Add (data); - } - return list; - } - - protected virtual void Dispose (bool exp) - { - if (!disposed && cnc != null) { - disposed = true; - try { - cnc.Close (); - } catch (Exception) { - } - cnc = null; - } - } - - public void Dispose () - { - Dispose (true); - GC.SuppressFinalize (this); - } - - ~IdConnection () - { - Dispose (false); - } -} - diff --git a/sample/DbClient/client.cs b/sample/DbClient/client.cs index 9ed651706..b12c8e2c4 100644 --- a/sample/DbClient/client.cs +++ b/sample/DbClient/client.cs @@ -27,6 +27,7 @@ class Client { static Stack statusIds; static VBox box; static IdConnection conn; + static bool noConn; static void Main () { @@ -106,7 +107,26 @@ class Client { PopMessage (); PushMessage (""); - ArrayList dataList = Conn.SelectAll (); + ArrayList dataList = null; + try { + dataList = Conn.SelectAll (); + } catch (Exception e) { + Console.WriteLine ("Error accesing DB.\n"); + Console.WriteLine (e.Message); + Console.Write ("\nYou should set up a PostgreSQL database for user 'monotest', "); + Console.Write ("password\n'monotest' and dbname 'monotest' accesible "); + Console.WriteLine ("through the loopback interface.\n"); + Console.WriteLine ("The database should have a table called customers " + + "created with the following\ncommand:\n"); + Console.WriteLine ("CREATE TABLE \"customers\" ("); + Console.WriteLine ("\t\"id\" integer NOT NULL,"); + Console.WriteLine ("\t\"name\" character varying(256) NOT NULL,"); + Console.WriteLine ("\t\"address\" character varying(256) NOT NULL"); + Console.WriteLine (");\n"); + Console.WriteLine ("CREATE UNIQUE INDEX id_idx ON customers USING btree (id);\n"); + + Environment.Exit (1); + } tableau = new Gtk.Table ((uint) dataList.Count + 1, 3, false); DrawTitles (tableau);