NGWS SDK Documentation  

This is preliminary documentation and subject to change.
To comment on this topic, please send us email at ngwssdk@microsoft.com. Thanks!

DBCommand Class

Represents a query command used when connecting to a data source.

Object
   DBCommand

[Visual Basic]
MustInherit Public Class DBCommand
   Implements ICloneable
[C#]
public abstract class DBCommand : ICloneable
[C++]
public __gc __abstract class DBCommand : public ICloneable
[JScript]
public abstract class DBCommand implements ICloneable

Remarks

When an instance of DBCommand is created, the read/write properties are set to initial values. For a list of these values, see the DBCommand constructor.

Requirements

Namespace: System.Data.Internal

Assembly: System.Data.dll

Example [C#]

The following example uses the derived classes ADOCommand and SQLCommand to select records from an Access data source and insert them in a SQL Server data source. This example can be modified to migrate an Access database to a SQL Server database.

[C#]

private DataSet InitializeMyDataSet() {
   // creates the table and its columns for the DataSet
   DataSet newData = new DataSet();
   DataTable newTable = newData.Tables.Add("Catagories");

   // add Columns to table
   newTable.Columns.Add("CategoryID",typeof(Int32));
   newTable.Columns.Add("CategoryName", typeof(String));
   newTable.Columns.Add("Description", typeof(String));
   newTable.Columns.Add("Picture",typeof(Byte[]));
   return newData;
}

public void AccessToSQLServer() {
   // set Access connection and select strings
   const string strAccessConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=NWIND_RW.MDB";
   const string strAccessSelect = "SELECT * FROM Categories ORDER BY CategoryID";
   // set SQL Server connection and insert strings
   const string strSQLServerConn = "Data Source=VBsql7;Initial Catalog=Northwind;User ID=sa;Password=;";
   const string strSQLServerInsert = "INSERT INTO Categories(CategoryName, Description, Picture) Values(@CategoryName,@Description,@Picture)";
   // create my DataSet
   DataSet myDataSet = InitializeMyDataSet();
   // create my Access objects
   ADOConnection myAccessConn = new ADOConnection(strAccessConn);
   ADODataSetCommand myAccessDataSetCmd = new ADODataSetCommand();
   myAccessDataSetCmd.SelectCommand = new ADOCommand(strAccessSelect,myAccessConn);
   // create my SQL Server objects
   SQLConnection mySQLConn = new SQLConnection(strSQLServerConn);
   SQLDataSetCommand mySQLDataSetCmd = new SQLDataSetCommand();
   mySQLDataSetCmd.InsertCommand = new SQLCommand(strSQLServerInsert,mySQLConn);
   // fill myDataSet with data from Access
   myAccessConn.Open();
   try {
      myAccessDataSetCmd.FillDataSet(myDataSet,"table");
   }
   finally {
      myAccessConn.Close();
   }

   // do ugly work to turn original rows into new rows

   // update SQL Server with data from the DataSet
   mySQLConn.Open();
   try {
      mySQLDataSetCmd.InsertCommand.Parameters.Add("CategoryName", typeof(String));
      mySQLDataSetCmd.InsertCommand.Parameters.Add("Description", typeof(String));
      mySQLDataSetCmd.InsertCommand.Parameters.Add("Picture", typeof(Byte[]));
      mySQLDataSetCmd.InsertCommand.Parameters[0].SourceColumn = "CategoryName";
      mySQLDataSetCmd.InsertCommand.Parameters[1].SourceColumn = "Description";
      mySQLDataSetCmd.InsertCommand.Parameters[2].SourceColumn = "Picture";
      mySQLDataSetCmd.Update(myDataSet,"table");
   }
   finally {
      mySQLConn.Close();
   }
}

See Also

DBCommand Members | System.Data.Internal Namespace | DBDataSetCommand | DBConnection | ADOCommand | SQLCommand