Pass parameters to OdbcCommand

image_pdfimage_print

using System;
using System.Data;
using System.Data.Odbc;

class CommandOdbcExample{

static void Main() {
OdbcConnection thisConnection = new OdbcConnection(“DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=test;UID=root;PASSWORD=;”);

OdbcCommand nonqueryCommand = thisConnection.CreateCommand();

try {
thisConnection.Open();

nonqueryCommand.CommandText = “CREATE TABLE MyTable (MyName VARCHAR (30), MyNumber integer)”;
Console.WriteLine(nonqueryCommand.CommandText);
nonqueryCommand.ExecuteNonQuery();

nonqueryCommand.CommandText = “INSERT INTO MyTable VALUES (?, ?)”;

nonqueryCommand.Parameters.Add(“@MyName”, OdbcType.VarChar, 30);
nonqueryCommand.Parameters.Add(“@MyNumber”, OdbcType.Int);

// nonqueryCommand.Prepare();
string[] names = { “A”, “B”, “C”, “D” } ;
int i;
for (i=1; i<=4; i++){ nonqueryCommand.Parameters["@MyName"].Value = names[i-1]; nonqueryCommand.Parameters["@MyNumber"].Value = i; Console.WriteLine(nonqueryCommand.CommandText); Console.WriteLine("Number of Rows Affected is: {0}", nonqueryCommand.ExecuteNonQuery()); } nonqueryCommand.CommandText = "SELECT MyName, MyNumber FROM MyTable"; OdbcDataReader thisReader = nonqueryCommand.ExecuteReader(); while (thisReader.Read()) { Console.WriteLine("Name and Number: {0} {1}", thisReader.GetValue(0), thisReader.GetValue(1)); } thisReader.Close(); nonqueryCommand.CommandText = "DROP TABLE MyTable"; nonqueryCommand.ExecuteNonQuery(); } catch (OdbcException ex) { Console.WriteLine(ex.ToString()); } finally { thisConnection.Close(); Console.WriteLine("Connection Closed."); } } } [/csharp]

Create database through OdbcCommand

image_pdfimage_print

using System;
using System.Data;
using System.Data.Odbc;

class CommandOdbcExample{

static void Main() {
OdbcConnection thisConnection = new OdbcConnection(“DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=test;UID=root;PASSWORD=;”);

OdbcCommand nonqueryCommand = thisConnection.CreateCommand();

try {
thisConnection.Open();

nonqueryCommand.CommandText = “CREATE TABLE MyTable (MyName VARCHAR (30), MyNumber integer)”;
Console.WriteLine(nonqueryCommand.CommandText);
nonqueryCommand.ExecuteNonQuery();

nonqueryCommand.CommandText = “INSERT INTO MyTable VALUES (?, ?)”;

nonqueryCommand.Parameters.Add(“@MyName”, OdbcType.VarChar, 30);
nonqueryCommand.Parameters.Add(“@MyNumber”, OdbcType.Int);

// nonqueryCommand.Prepare();
string[] names = { “A”, “B”, “C”, “D” } ;
int i;
for (i=1; i<=4; i++){ nonqueryCommand.Parameters["@MyName"].Value = names[i-1]; nonqueryCommand.Parameters["@MyNumber"].Value = i; Console.WriteLine(nonqueryCommand.CommandText); Console.WriteLine("Number of Rows Affected is: {0}", nonqueryCommand.ExecuteNonQuery()); } nonqueryCommand.CommandText = "SELECT MyName, MyNumber FROM MyTable"; OdbcDataReader thisReader = nonqueryCommand.ExecuteReader(); while (thisReader.Read()) { Console.WriteLine("Name and Number: {0} {1}", thisReader.GetValue(0), thisReader.GetValue(1)); } thisReader.Close(); nonqueryCommand.CommandText = "DROP TABLE MyTable"; nonqueryCommand.ExecuteNonQuery(); } catch (OdbcException ex) { Console.WriteLine(ex.ToString()); } finally { thisConnection.Close(); Console.WriteLine("Connection Closed."); } } } [/csharp]

Odbc Error Handler

image_pdfimage_print
   
 

using System;
using System.Diagnostics;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.Odbc;


public class MainClass {
    [STAThread]
    static void Main() {
        OdbcConnection cn;
        try {
            cn = new OdbcConnection();
            cn.ConnectionString = "driver={SQL Serve};server=.;uid=admin;pwd=pw;database=biblio";
            cn.Open();
        } catch (OdbcException ex) {
            if (ex.InnerException != null) {
                Debug.WriteLine("InnerException:" + ex.InnerException.Message);
            }
            MessageBox.Show(ex.ToString());
            Debug.WriteLine("Message:" + ex.Message.ToString());
            Debug.WriteLine("Source:" + ex.Source.ToString());
            Debug.WriteLine("StackTrace:" + ex.StackTrace.ToString());
            Debug.WriteLine("TargetSite:" + ex.TargetSite.ToString()); // Not in OleDB

            if (ex.HelpLink != null) {
                Debug.WriteLine("HelpLink:" + ex.HelpLink);
            }
        }
    }
}

    


ODBC connection

image_pdfimage_print
   


using System;
using System.Data; 
using System.Data.Odbc; 

class OdbcProvider
{
   static void Main(string[] args)
   {
      string connString = @"dsn=northwindodbc";
      string sql = @"select * from employees";

      OdbcConnection conn = null;
      OdbcDataReader reader = null;

      try {
         conn = new OdbcConnection(connString);
         conn.Open();

         OdbcCommand cmd = new OdbcCommand(sql, conn);
         reader = cmd.ExecuteReader();

         Console.WriteLine(
            "Querying database {0} with query {1}
"
            , conn.Database
            , cmd.CommandText
            );
         Console.WriteLine("First Name	Last Name
");

         while(reader.Read()) {
            Console.WriteLine(
               "{0} | {1}" 
               , reader["FirstName"].ToString().PadLeft(10) 
               , reader[1].ToString().PadLeft(10)
               );
         }
      } catch (Exception e) {
         Console.WriteLine("Error: " + e);
      } finally {
         reader.Close();
         conn.Close();
      }
   }
}

           
          


Creating Connection To ODBC

image_pdfimage_print
   



/*
 * C# Programmers Pocket Consultant
 * Author: Gregory S. MacBeth
 * Email: gmacbeth@comporium.net
 * Create Date: June 27, 2003
 * Last Modified Date:
 * Version: 1
 */
using System;
using System.Data.Odbc;

namespace Client.Chapter_13___ADO.NET
{
    public class CreatingConnectionToODBC
    {
        static void Main(string[] args)
        {
            OdbcConnection MyConnection = new OdbcConnection(
            "DRIVER={MySQL};SERVER=TESTSRV;DATABASE=MyDatabase;UID=root;PWD=""");
            MyConnection.Open();            
        }
    }
}


           
          


Connection to MySql

image_pdfimage_print
   

using System;
using System.Data;
using ByteFX.Data.MySqlClient;

   class MySqlConnect
   {
      static void Main() 
      {
         string connString = @"Data Source=server;Database=mydb;User ID=username;Password=pwd;Command Logging=false";
         MySqlConnection conn = new MySqlConnection(connString);

         try 
         {
            conn.Open();
            Console.WriteLine("Connection opened.");

            Console.WriteLine("Connection Properties:");   
            Console.WriteLine("	Connection String: {0}",conn.ConnectionString);    
            Console.WriteLine("	Database: {0}",conn.Database);   
            Console.WriteLine("	ServerVersion: {0}",
               conn.ServerVersion);
            Console.WriteLine(
               "	State: {0}",
               conn.State);
         } 
         catch (MySqlException e) 
         {
            Console.WriteLine("Error: " + e);  
         }
         finally 
         {
            conn.Close();
            Console.WriteLine("Connection closed.");
         }
      }
   }



           
          


Deal with the many to many relation

image_pdfimage_print
   

using System;
using System.Data;            // use ADO.NET namespace
using System.Data.SqlClient;  // use SQL Server provider

class DataRelationExample
{
   public static void Main() 
   {
      SqlConnection thisConnection = new SqlConnection("server=(local)SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI");

      SqlDataAdapter thisAdapter = new SqlDataAdapter("SELECT CustomerID, CompanyName FROM Customers", thisConnection);

      SqlCommandBuilder thisBuilder = new SqlCommandBuilder(thisAdapter);

      DataSet thisDataSet = new DataSet();

      SqlDataAdapter custAdapter = new SqlDataAdapter("SELECT * FROM Customers", thisConnection);
      SqlDataAdapter orderAdapter = new SqlDataAdapter("SELECT * FROM Orders", thisConnection);
      custAdapter.Fill(thisDataSet, "Customers");
      orderAdapter.Fill(thisDataSet, "Orders");

      DataRelation custOrderRel = thisDataSet.Relations.Add("CustOrders",
         thisDataSet.Tables["Customers"].Columns["CustomerID"],
         thisDataSet.Tables["Orders"].Columns["CustomerID"]);
         
      foreach (DataRow custRow in thisDataSet.Tables["Customers"].Rows)
      {
         Console.WriteLine("Customer ID: " + custRow["CustomerID"] + " Name: " + custRow["CompanyName"]);
         foreach (DataRow orderRow in custRow.GetChildRows(custOrderRel)) {
            Console.WriteLine("  Order ID: " + orderRow["OrderID"]);
         }
      }
      

      custOrderRel.Nested = true;

      thisDataSet.WriteXml(@"nwinddata.xml");
      Console.WriteLine(@"Successfully wrote XML output to file nwinddata.xml");

   }
}