List:Commits« Previous MessageNext Message »
From:rburnett Date:November 27 2006 5:34pm
Subject:Connector/NET commit: r465 - in trunk/mysqlclient: . docs
View as plain text  
Modified:
   trunk/mysqlclient/Connection.cs
   trunk/mysqlclient/MySqlClientFactory.cs
   trunk/mysqlclient/MySqlConnectionStringBuilder.cs
   trunk/mysqlclient/command.cs
   trunk/mysqlclient/datareader.cs
   trunk/mysqlclient/docs/MySqlDataReader.xml
   trunk/mysqlclient/parameter.cs
   trunk/mysqlclient/parameter_collection.cs
Log:
added proper comments to many of the public methods that did not have them.

Modified: trunk/mysqlclient/Connection.cs
===================================================================
--- trunk/mysqlclient/Connection.cs	2006-11-27 16:28:59 UTC (rev 464)
+++ trunk/mysqlclient/Connection.cs	2006-11-27 16:33:59 UTC (rev 465)
@@ -27,6 +27,7 @@
 using System.Globalization;
 using MySql.Data.Common;
 using System.Diagnostics;
+using System.Windows.Forms;
 
 namespace MySql.Data.MySqlClient
 {
@@ -248,6 +249,12 @@
 		#region Transactions
 
 #if !MONO
+		/// <summary>
+		/// Enlists in the specified transaction. 
+		/// </summary>
+		/// <param name="transaction">
+		/// A reference to an existing <see cref="Transaction"/> in which to enlist.
+		/// </param>
 		public override void EnlistTransaction(System.Transactions.Transaction transaction)
 		{
 			if (currentTransaction != null)
@@ -481,20 +488,45 @@
 
 		#region GetSchema Support
 
+		/// <summary>
+		/// Returns schema information for the data source of this <see cref="DbConnection"/>. 
+		/// </summary>
+		/// <returns>A <see cref="DataTable"/> that contains schema information. </returns>
 		public override DataTable GetSchema()
 		{
 			return GetSchema(null);
 		}
 
+		/// <summary>
+		/// Returns schema information for the data source of this 
+		/// <see cref="DbConnection"/> using the specified string for the schema name. 
+		/// </summary>
+		/// <param name="collectionName">Specifies the name of the schema to return. </param>
+		/// <returns>A <see cref="DataTable"/> that contains schema information. </returns>
 		public override DataTable GetSchema(string collectionName)
 		{
 			if (collectionName == null)
 				collectionName = SchemaProvider.MetaCollection;
+
 			return schemaProvider.GetSchema(collectionName, null);
 		}
 
+		/// <summary>
+		/// Returns schema information for the data source of this <see cref="DbConnection"/>
+		/// using the specified string for the schema name and the specified string array 
+		/// for the restriction values. 
+		/// </summary>
+		/// <param name="collectionName">Specifies the name of the schema to return.</param>
+		/// <param name="restrictionValues">Specifies a set of restriction values for the requested schema.</param>
+		/// <returns>A <see cref="DataTable"/> that contains schema information.</returns>
 		public override DataTable GetSchema(string collectionName, string[] restrictionValues)
 		{
+			string msg = "collection = " + collectionName + " with rest = ";
+			foreach (string s in restrictionValues)
+			{
+				msg += "r = " + s;
+			}
+
 			if (collectionName == null)
 				collectionName = SchemaProvider.MetaCollection;
 			return schemaProvider.GetSchema(collectionName, restrictionValues);

Modified: trunk/mysqlclient/MySqlClientFactory.cs
===================================================================
--- trunk/mysqlclient/MySqlClientFactory.cs	2006-11-27 16:28:59 UTC (rev 464)
+++ trunk/mysqlclient/MySqlClientFactory.cs	2006-11-27 16:33:59 UTC (rev 465)
@@ -28,6 +28,10 @@
     /// </summary>
     public sealed class MySqlClientFactory : DbProviderFactory
     {
+        /// <summary>
+        /// Gets an instance of the <see cref="MySqlClientFactory"/>. 
+        /// This can be used to retrieve strongly typed data objects. 
+        /// </summary>
         public static readonly MySqlClientFactory Instance;
 
         static MySqlClientFactory()
@@ -35,36 +39,64 @@
             Instance = new MySqlClientFactory();
         }
 
+        /// <summary>
+        /// Returns a strongly typed <see cref="DbCommandBuilder"/> instance. 
+        /// </summary>
+        /// <returns>A new strongly typed instance of <b>DbCommandBuilder</b>.</returns>
         public override DbCommandBuilder CreateCommandBuilder()
         {
             return new MySqlCommandBuilder();
         }
 
+        /// <summary>
+        /// Returns a strongly typed <see cref="DbCommand"/> instance. 
+        /// </summary>
+        /// <returns>A new strongly typed instance of <b>DbCommand</b>.</returns>
         public override DbCommand CreateCommand()
         {
             return new MySqlCommand();
         }
 
+        /// <summary>
+        /// Returns a strongly typed <see cref="DbConnection"/> instance. 
+        /// </summary>
+        /// <returns>A new strongly typed instance of <b>DbConnection</b>.</returns>
         public override DbConnection CreateConnection()
         {
             return new MySqlConnection();
         }
 
+        /// <summary>
+        /// Returns a strongly typed <see cref="DbDataAdapter"/> instance. 
+        /// </summary>
+        /// <returns>A new strongly typed instance of <b>DbDataAdapter</b>. </returns>
         public override DbDataAdapter CreateDataAdapter()
         {
             return new MySqlDataAdapter();
         }
 
+        /// <summary>
+        /// Returns a strongly typed <see cref="DbParameter"/> instance. 
+        /// </summary>
+        /// <returns>A new strongly typed instance of <b>DbParameter</b>.</returns>
         public override DbParameter CreateParameter()
         {
             return new MySqlParameter();
         }
 
+        /// <summary>
+        /// Returns a strongly typed <see cref="DbConnectionStringBuilder"/> instance. 
+        /// </summary>
+        /// <returns>A new strongly typed instance of <b>DbConnectionStringBuilder</b>.</returns>
         public override DbConnectionStringBuilder CreateConnectionStringBuilder()
         {
             return new MySqlConnectionStringBuilder();
         }
 
+        /// <summary>
+        /// Returns true if a <b>MySqlDataSourceEnumerator</b> can be created; 
+        /// otherwise false. 
+        /// </summary>
         public override bool CanCreateDataSourceEnumerator
         {
             get { return false; }

Modified: trunk/mysqlclient/MySqlConnectionStringBuilder.cs
===================================================================
--- trunk/mysqlclient/MySqlConnectionStringBuilder.cs	2006-11-27 16:28:59 UTC (rev 464)
+++ trunk/mysqlclient/MySqlConnectionStringBuilder.cs	2006-11-27 16:33:59 UTC (rev 465)
@@ -23,6 +23,7 @@
 using System.Data.Common;
 using MySql.Data.Common;
 using System.Globalization;
+using System.Collections.Generic;
 using System.Text;
 
 namespace MySql.Data.MySqlClient
@@ -45,23 +46,37 @@
 		bool useUsageAdvisor, useSSL;
 		bool ignorePrepare;
 
+        /// <summary>
+        /// Initializes a new instance of the <see cref="MySqlConnectionStringBuilder"/> class. 
+        /// </summary>
 		public MySqlConnectionStringBuilder()
 		{
 			persistConnString = new StringBuilder();
 			Clear();
 		}
 
-		public MySqlConnectionStringBuilder(string connstr)
+        /// <summary>
+        /// Initializes a new instance of the <see cref="MySqlConnectionStringBuilder"/> class. 
+        /// The provided connection string provides the data for the instance's internal 
+        /// connection information. 
+        /// </summary>
+        /// <param name="connectionString">The basis for the object's internal connection 
+        /// information. Parsed into name/value pairs. Invalid key names raise 
+        /// <see cref="KeyNotFoundException"/>.
+        /// </param>
+		public MySqlConnectionStringBuilder(string connectionString)
 			: base()
 		{
-			originalConnectionString = connstr;
+			originalConnectionString = connectionString;
 			persistConnString = new StringBuilder();
-			ConnectionString = connstr;
+			ConnectionString = connectionString;
 		}
 
 		#region Server Properties
 
-
+		/// <summary>
+		/// Gets or sets the name of the server.
+		/// </summary>
 #if !CF && !MONO
 		[Category("Connection")]
 		[Description("Server to connect to")]
@@ -72,6 +87,10 @@
 			set { CheckNullAndSet("Server", value); server = value; }
 		}
 
+		/// <summary>
+		/// Gets or sets the name of the database the connection should 
+		/// initially connect to.
+		/// </summary>
 #if !CF && !MONO
 		[Category("Connection")]
 		[Description("Database to use initially")]
@@ -82,6 +101,10 @@
 			set { CheckNullAndSet("Database", value); database = value; }
 		}
 
+		/// <summary>
+		/// Gets or sets the protocol that should be used for communicating
+		/// with MySQL.
+		/// </summary>
 #if !CF && !MONO
 		[Category("Connection")]
 		[DisplayName("Connection Protocol")]
@@ -94,6 +117,10 @@
 			set { base["Protocol"] = value; protocol = value; }
 		}
 
+		/// <summary>
+		/// Gets or sets the name of the named pipe that should be used
+		/// for communicating with MySQL.
+		/// </summary>
 #if !CF && !MONO
 		[Category("Connection")]
 		[DisplayName("Pipe Name")]
@@ -105,6 +132,10 @@
 			set { CheckNullAndSet("Pipe Name", value); pipeName = value; }
 		}
 
+		/// <summary>
+		/// Gets or sets a boolean value that indicates whether this connection
+		/// should use compression.
+		/// </summary>
 #if !CF && !MONO
 		[Category("Connection")]
 		[DisplayName("Use Compression")]
@@ -117,6 +148,10 @@
 			set { base["compress"] = value; compress = value; }
 		}
 
+		/// <summary>
+		/// Gets or sets a boolean value that indicates whether this connection will allow
+		/// commands to send multiple SQL statements in one execution.
+		/// </summary>
 #if !CF && !MONO
 		[Category("Connection")]
 		[DisplayName("Allow Batch")]
@@ -129,6 +164,9 @@
 			set { base["allow batch"] = value; allowBatch = value; }
 		}
 
+		/// <summary>
+		/// Gets or sets a boolean value that indicates whether logging is enabled.
+		/// </summary>
 #if !CF && !MONO
 		[Category("Connection")]
 		[Description("Enables output of diagnostic messages")]
@@ -140,6 +178,10 @@
 			set { base["logging"] = value; logging = value; }
 		}
 
+		/// <summary>
+		/// Gets or sets the base name of the shared memory objects used to 
+		/// communicate with MySQL when the shared memory protocol is being used.
+		/// </summary>
 #if !CF && !MONO
 		[Category("Connection")]
 		[DisplayName("Shared Memory Name")]
@@ -152,6 +194,10 @@
 			set { CheckNullAndSet("Shared Memory Name", value); sharedMemName = value; }
 		}
 
+		/// <summary>
+		/// Gets or sets a boolean value that indicates whether this connection uses
+		/// the old style (@) parameter markers or the new (?) style.
+		/// </summary>
 #if !CF && !MONO
 		[Category("Connection")]
 		[DisplayName("Use Old Syntax")]
@@ -164,6 +210,12 @@
 			set { base["Old Syntax"] = value; oldSyntax = value; }
 		}
 
+		/// <summary>
+		/// Gets or sets the driver type that should be used for this connection.
+		/// </summary>
+		/// <remarks>
+		/// There is only one valid value for this setting currently.
+		/// </remarks>
 #if !CF && !MONO
 		[Category("Connection")]
 		[DisplayName("Driver Type")]
@@ -182,6 +234,10 @@
 			set { CheckNullAndSet("Option File", value); optionFile = value; }
 		}
 
+		/// <summary>
+		/// Gets or sets the port number that is used when the socket
+		/// protocol is being used.
+		/// </summary>
 #if !CF && !MONO
 		[Category("Connection")]
 		[Description("Port to use for TCP/IP connections")]
@@ -193,6 +249,9 @@
 			set { base["Port"] = value; port = value; }
 		}
 
+		/// <summary>
+		/// Gets or sets the connection timeout.
+		/// </summary>
 #if !CF && !MONO
 		[Category("Connection")]
 		[DisplayName("Connect Timeout")]
@@ -210,6 +269,9 @@
 
 		#region Authentication Properties
 
+		/// <summary>
+		/// Gets or sets the user id that should be used to connect with.
+		/// </summary>
 #if !CF && !MONO
 		[Category("Security")]
 		[DisplayName("User ID")]
@@ -221,6 +283,9 @@
 			set { CheckNullAndSet("User Id", value); userId = value; }
 		}
 
+		/// <summary>
+		/// Gets or sets the password that should be used to connect with.
+		/// </summary>
 #if !CF && !MONO
 		[Category("Security")]
 		[Description("Indicates the password to be used when connecting to the data source.")]
@@ -231,6 +296,10 @@
 			set { CheckNullAndSet("Password", value); password = value; }
 		}
 
+		/// <summary>
+		/// Gets or sets a boolean value that indicates if the password should be persisted
+		/// in the connection string.
+		/// </summary>
 #if !CF && !MONO
 		[Category("Security")]
 		[DisplayName("Persist Security Info")]
@@ -259,6 +328,9 @@
 
 		#region Other Properties
 
+		/// <summary>
+		/// Gets or sets a boolean value that indicates if zero date time values are supported.
+		/// </summary>
 #if !CF && !MONO
 		[Category("Advanced")]
 		[DisplayName("Allow Zero Datetime")]
@@ -271,6 +343,10 @@
 			set { base["Allow Zero DateTime"] = value; allowZeroDatetime = value; }
 		}
 
+		/// <summary>
+		/// Gets or sets a boolean value indicating if zero datetime values should be 
+		/// converted to DateTime.MinValue.
+		/// </summary>
 #if !CF && !MONO
 		[Category("Advanced")]
 		[DisplayName("Convert Zero Datetime")]
@@ -283,6 +359,9 @@
 			set { base["Convert Zero DateTime"] = value; convertZeroDatetime = value; }
 		}
 
+		/// <summary>
+		/// Gets or sets the character set that should be used for sending queries to the server.
+		/// </summary>
 #if !CF && !MONO
 		[Category("Advanced")]
 		[Description("Character set this connection should use")]
@@ -293,6 +372,9 @@
 			set { CheckNullAndSet("Character Set", value); charSet = value; }
 		}
 
+		/// <summary>
+		/// Gets or sets a boolean value indicating if the Usage Advisor should be enabled.
+		/// </summary>
 #if !CF && !MONO
 		[Category("Advanced")]
 		[DisplayName("Use Usage Advisor")]
@@ -305,6 +387,9 @@
 			set { base["Use Usage Advisor"] = value; useUsageAdvisor = value; }
 		}
 
+		/// <summary>
+		/// Gets or sets the size of the stored procedure cache.
+		/// </summary>
 #if !CF && !MONO
 		[Category("Advanced")]
 		[DisplayName("Procedure Cache Size")]
@@ -318,6 +403,9 @@
 			set { base["Procedure Cache Size"] = value; procCacheSize = value; }
 		}
 
+		/// <summary>
+		/// Gets or sets a boolean value indicating if the permon hooks should be enabled.
+		/// </summary>
 #if !CF && !MONO
 		[Category("Advanced")]
 		[DisplayName("Use Performance Monitor")]
@@ -330,6 +418,9 @@
 			set { base["Use Performance Monitor"] = value; usePerfMon = value; }
 		}
 
+		/// <summary>
+		/// Gets or sets a boolean value indicating if calls to Prepare() should be ignored.
+		/// </summary>
 #if !CF && !MONO
 		[Category("Advanced")]
 		[DisplayName("Ignore Prepare")]
@@ -346,6 +437,9 @@
 
 		#region Pooling Properties
 
+		/// <summary>
+		/// Gets or sets the lifetime of a pooled connection.
+		/// </summary>
 #if !CF && !MONO
 		[Category("Pooling")]
 		[DisplayName("Load Balance Timeout")]
@@ -359,6 +453,9 @@
 			set { base["Connection Lifetime"] = value; connectionLifetime = value; }
 		}
 
+		/// <summary>
+		/// Gets or sets a boolean value indicating if connection pooling is enabled.
+		/// </summary>
 #if !CF && !MONO
 		[Category("Pooling")]
 		[Description("When true, the connection object is drawn from the appropriate " +
@@ -371,6 +468,9 @@
 			set { base["Pooling"] = value; pooling = value; }
 		}
 
+		/// <summary>
+		/// Gets the minimum connection pool size.
+		/// </summary>
 #if !CF && !MONO
 		[Category("Pooling")]
 		[DisplayName("Min Pool Size")]
@@ -383,6 +483,9 @@
 			set { base["Minimum Pool Size"] = value; minPoolSize = value; }
 		}
 
+		/// <summary>
+		/// Gets or sets the maximum connection pool setting.
+		/// </summary>
 #if !CF && !MONO
 		[Category("Pooling")]
 		[DisplayName("Max Pool Size")]
@@ -395,6 +498,10 @@
 			set { base["Maximum Pool Size"] = value; maxPoolSize = value; }
 		}
 
+		/// <summary>
+		/// Gets or sets a boolean value indicating if the connection should be reset when retrieved
+		/// from the pool.
+		/// </summary>
 #if !CF && !MONO
 		[Category("Pooling")]
 		[DisplayName("Connection Reset")]
@@ -540,6 +647,9 @@
 			return connStr.Remove(connStr.Length - 1, 1);
 		}
 
+		/// <summary>
+		/// Clears the contents of the <see cref="MySqlConnectionStringBuilder"/> instance. 
+		/// </summary>
 		public override void Clear()
 		{
 			base.Clear();
@@ -711,6 +821,12 @@
 			}
 		}
 
+        /// <summary>
+        /// Gets or sets the value associated with the specified key. In C#, this property 
+        /// is the indexer. 
+        /// </summary>
+        /// <param name="key">The key of the item to get or set.</param>
+        /// <returns>The value associated with the specified key. </returns>
 		public override object this[string key]
 		{
 			get

Modified: trunk/mysqlclient/command.cs
===================================================================
--- trunk/mysqlclient/command.cs	2006-11-27 16:28:59 UTC (rev 464)
+++ trunk/mysqlclient/command.cs	2006-11-27 16:33:59 UTC (rev 465)
@@ -476,11 +476,31 @@
 			return sb.ToString(start, end - start + 1);
 		}
 
+		/// <summary>
+		/// Initiates the asynchronous execution of the SQL statement or stored procedure 
+		/// that is described by this <see cref="MySqlCommand"/>, and retrieves one or more 
+		/// result sets from the server. 
+		/// </summary>
+		/// <returns>An <see cref="IAsyncResult"/> that can be used to poll, wait for results, 
+		/// or both; this value is also needed when invoking EndExecuteReader, 
+		/// which returns a <see cref="MySqlDataReader"/> instance that can be used to retrieve 
+		/// the returned rows. </returns>
 		public IAsyncResult BeginExecuteReader()
 		{
 			return BeginExecuteReader(CommandBehavior.Default);
 		}
 
+		/// <summary>
+		/// Initiates the asynchronous execution of the SQL statement or stored procedure 
+		/// that is described by this <see cref="MySqlCommand"/> using one of the 
+		/// <b>CommandBehavior</b> values. 
+		/// </summary>
+		/// <param name="behavior">One of the <see cref="CommandBehavior"/> values, indicating 
+		/// options for statement execution and data retrieval.</param>
+		/// <returns>An <see cref="IAsyncResult"/> that can be used to poll, wait for results, 
+		/// or both; this value is also needed when invoking EndExecuteReader, 
+		/// which returns a <see cref="MySqlDataReader"/> instance that can be used to retrieve 
+		/// the returned rows. </returns>
 		public IAsyncResult BeginExecuteReader(CommandBehavior behavior)
 		{
 			AsyncExecuteReaderDelegate del = new AsyncExecuteReaderDelegate(ExecuteReader);
@@ -488,12 +508,33 @@
 			return asyncResult;
 		}
 
+		/// <summary>
+		/// Finishes asynchronous execution of a SQL statement, returning the requested 
+		/// <see cref="MySqlDataReader"/>.
+		/// </summary>
+		/// <param name="result">The <see cref="IAsyncResult"/> returned by the call to 
+		/// <see cref="BeginExecuteReader()"/>.</param>
+		/// <returns>A <b>MySqlDataReader</b> object that can be used to retrieve the requested rows. </returns>
 		public MySqlDataReader EndExecuteReader(IAsyncResult result)
 		{
 			result.AsyncWaitHandle.WaitOne();
 			return connection.Reader;
 		}
 
+		/// <summary>
+		/// Initiates the asynchronous execution of the SQL statement or stored procedure 
+		/// that is described by this <see cref="MySqlCommand"/>. 
+		/// </summary>
+		/// <param name="callback">
+		/// An <see cref="AsyncCallback"/> delegate that is invoked when the command's 
+		/// execution has completed. Pass a null reference (<b>Nothing</b> in Visual Basic) 
+		/// to indicate that no callback is required.</param>
+		/// <param name="stateObject">A user-defined state object that is passed to the 
+		/// callback procedure. Retrieve this object from within the callback procedure 
+		/// using the <see cref="IAsyncResult.AsyncState"/> property.</param>
+		/// <returns>An <see cref="IAsyncResult"/> that can be used to poll or wait for results, 
+		/// or both; this value is also needed when invoking <see cref="EndExecuteNonQuery"/>, 
+		/// which returns the number of affected rows. </returns>
 		public IAsyncResult BeginExecuteNonQuery(AsyncCallback callback, object stateObject)
 		{
 			AsyncExecuteNonQueryDelegate del =
@@ -502,6 +543,13 @@
 			return asyncResult;
 		}
 
+		/// <summary>
+		/// Initiates the asynchronous execution of the SQL statement or stored procedure 
+		/// that is described by this <see cref="MySqlCommand"/>. 
+		/// </summary>
+		/// <returns>An <see cref="IAsyncResult"/> that can be used to poll or wait for results, 
+		/// or both; this value is also needed when invoking <see cref="EndExecuteNonQuery"/>, 
+		/// which returns the number of affected rows. </returns>
 		public IAsyncResult BeginExecuteNonQuery()
 		{
 			AsyncExecuteNonQueryDelegate del =
@@ -510,9 +558,15 @@
 			return asyncResult;
 		}
 
-		public int EndExecuteNonQuery(IAsyncResult result)
+		/// <summary>
+		/// Finishes asynchronous execution of a SQL statement. 
+		/// </summary>
+		/// <param name="asyncResult">The <see cref="IAsyncResult"/> returned by the call 
+		/// to <see cref="BeginExecuteNonQuery()"/>.</param>
+		/// <returns></returns>
+		public int EndExecuteNonQuery(IAsyncResult asyncResult)
 		{
-			result.AsyncWaitHandle.WaitOne();
+			asyncResult.AsyncWaitHandle.WaitOne();
 			return (int)updatedRowCount;
 		}
 
@@ -603,6 +657,9 @@
 
 		#endregion
 
+        /// <summary>
+        /// Gets or sets a value indicating whether the command object should be visible in a Windows Form Designer control. 
+        /// </summary>
 		[Browsable(false)]
 		public override bool DesignTimeVisible
 		{
@@ -616,6 +673,10 @@
 			}
 		}
 
+        /// <summary>
+        /// Gets or sets how command results are applied to the DataRow when used by the 
+        /// Update method of the DbDataAdapter. 
+        /// </summary>
 		public override UpdateRowSource UpdatedRowSource
 		{
 			get

Modified: trunk/mysqlclient/datareader.cs
===================================================================
--- trunk/mysqlclient/datareader.cs	2006-11-27 16:28:59 UTC (rev 464)
+++ trunk/mysqlclient/datareader.cs	2006-11-27 16:33:59 UTC (rev 465)
@@ -192,6 +192,11 @@
 
 		#region TypeSafe Accessors
 
+		/// <summary>
+		/// Gets the value of the specified column as a Boolean.
+		/// </summary>
+		/// <param name="name"></param>
+		/// <returns></returns>
 		public bool GetBoolean(string name)
 		{
 			return GetBoolean(GetOrdinal(name));
@@ -207,6 +212,11 @@
 			return Convert.ToBoolean(GetValue(i));
 		}
 
+		/// <summary>
+		/// Gets the value of the specified column as a byte.
+		/// </summary>
+		/// <param name="name"></param>
+		/// <returns></returns>
 		public byte GetByte(string name)
 		{
 			return GetByte(GetOrdinal(name));
@@ -271,6 +281,11 @@
 			return length;
 		}
 
+		/// <summary>
+		/// Gets the value of the specified column as a single character.
+		/// </summary>
+		/// <param name="name"></param>
+		/// <returns></returns>
 		public char GetChar(string name)
 		{
 			return GetChar(GetOrdinal(name));
@@ -332,26 +347,28 @@
 			return values[i].MySqlTypeName;
 		}
 
-		public MySqlDateTime GetMySqlDateTime(string name)
+		/// <include file='docs/MySqlDataReader.xml' path='docs/GetMySqlDateTime/*'/>
+		public MySqlDateTime GetMySqlDateTime(string column)
 		{
-			return GetMySqlDateTime(GetOrdinal(name));
+			return GetMySqlDateTime(GetOrdinal(column));
 		}
 
 		/// <include file='docs/MySqlDataReader.xml' path='docs/GetMySqlDateTime/*'/>
-		public MySqlDateTime GetMySqlDateTime(int index)
+		public MySqlDateTime GetMySqlDateTime(int column)
 		{
-			return (MySqlDateTime)GetFieldValue(index, true);
+			return (MySqlDateTime)GetFieldValue(column, true);
 		}
 
-		public DateTime GetDateTime(string name)
+		/// <include file='docs/MySqlDataReader.xml' path='docs/GetDateTime/*'/>
+		public DateTime GetDateTime(string column)
 		{
-			return GetDateTime(GetOrdinal(name));
+			return GetDateTime(GetOrdinal(column));
 		}
 
 		/// <include file='docs/MySqlDataReader.xml' path='docs/GetDateTime/*'/>
-		public override DateTime GetDateTime(int index)
+		public override DateTime GetDateTime(int column)
 		{
-			IMySqlValue val = GetFieldValue(index, true);
+			IMySqlValue val = GetFieldValue(column, true);
 			MySqlDateTime dt;
 
 			// we need to do this because functions like date_add return string
@@ -369,29 +386,31 @@
 				return dt.GetDateTime();
 		}
 
-		public Decimal GetDecimal(string name)
+		/// <include file='docs/MySqlDataReader.xml' path='docs/GetDecimal/*'/>
+		public Decimal GetDecimal(string column)
 		{
-			return GetDecimal(GetOrdinal(name));
+			return GetDecimal(GetOrdinal(column));
 		}
 
 		/// <include file='docs/MySqlDataReader.xml' path='docs/GetDecimal/*'/>
-		public override Decimal GetDecimal(int index)
+		public override Decimal GetDecimal(int column)
 		{
-			IMySqlValue v = GetFieldValue(index, true);
+			IMySqlValue v = GetFieldValue(column, true);
 			if (v is MySqlDecimal)
 				return ((MySqlDecimal)v).Value;
 			return Convert.ToDecimal(v.Value);
 		}
 
-		public double GetDouble(string name)
+		/// <include file='docs/MySqlDataReader.xml' path='docs/GetDouble/*'/>
+		public double GetDouble(string column)
 		{
-			return GetDouble(GetOrdinal(name));
+			return GetDouble(GetOrdinal(column));
 		}
 
 		/// <include file='docs/MySqlDataReader.xml' path='docs/GetDouble/*'/>
-		public override double GetDouble(int index)
+		public override double GetDouble(int column)
 		{
-			IMySqlValue v = GetFieldValue(index, true);
+			IMySqlValue v = GetFieldValue(column, true);
 			if (v is MySqlDouble)
 				return ((MySqlDouble)v).Value;
 			return Convert.ToDouble(v.Value);
@@ -416,79 +435,84 @@
 			return values[i].SystemType;
 		}
 
-		public float GetFloat(string name)
+		/// <include file='docs/MySqlDataReader.xml' path='docs/GetFloat/*'/>
+		public float GetFloat(string column)
 		{
-			return GetFloat(GetOrdinal(name));
+			return GetFloat(GetOrdinal(column));
 		}
 
 		/// <include file='docs/MySqlDataReader.xml' path='docs/GetFloat/*'/>
-		public override float GetFloat(int index)
+		public override float GetFloat(int column)
 		{
-			IMySqlValue v = GetFieldValue(index, true);
+			IMySqlValue v = GetFieldValue(column, true);
 			if (v is MySqlSingle)
 				return ((MySqlSingle)v).Value;
 			return Convert.ToSingle(v.Value);
 		}
 
-		public Guid GetGuid(string name)
+		/// <include file='docs/MySqlDataReader.xml' path='docs/GetGuid/*'/>
+		public Guid GetGuid(string column)
 		{
-			return GetGuid(GetOrdinal(name));
+			return GetGuid(GetOrdinal(column));
 		}
 
 		/// <include file='docs/MySqlDataReader.xml' path='docs/GetGuid/*'/>
-		public override Guid GetGuid(int index)
+		public override Guid GetGuid(int column)
 		{
-			return new Guid(GetString(index));
+			return new Guid(GetString(column));
 		}
 
-		public Int16 GetInt16(string name)
+		/// <include file='docs/MySqlDataReader.xml' path='docs/GetInt16/*'/>
+		public Int16 GetInt16(string column)
 		{
-			return GetInt16(GetOrdinal(name));
+			return GetInt16(GetOrdinal(column));
 		}
 
 		/// <include file='docs/MySqlDataReader.xml' path='docs/GetInt16/*'/>
-		public override Int16 GetInt16(int index)
+		public override Int16 GetInt16(int column)
 		{
-			IMySqlValue v = GetFieldValue(index, true);
+			IMySqlValue v = GetFieldValue(column, true);
 			if (v is MySqlInt16)
 				return ((MySqlInt16)v).Value;
 
 			connection.UsageAdvisor.Converting(command.CommandText,
-				 fields[index].ColumnName, v.MySqlTypeName, "Int16");
+				 fields[column].ColumnName, v.MySqlTypeName, "Int16");
 			return ((IConvertible)v.Value).ToInt16(null);
 		}
 
-		public Int32 GetInt32(string name)
+		/// <include file='docs/MySqlDataReader.xml' path='docs/GetInt32/*'/>
+		public Int32 GetInt32(string column)
 		{
-			return GetInt32(GetOrdinal(name));
+			return GetInt32(GetOrdinal(column));
 		}
 
 		/// <include file='docs/MySqlDataReader.xml' path='docs/GetInt32/*'/>
-		public override Int32 GetInt32(int index)
+		public override Int32 GetInt32(int column)
 		{
-			IMySqlValue v = GetFieldValue(index, true);
+			IMySqlValue v = GetFieldValue(column, true);
 			if (v is MySqlInt32)
 				return ((MySqlInt32)v).Value;
 
 			connection.UsageAdvisor.Converting(command.CommandText,
-				 fields[index].ColumnName, v.MySqlTypeName, "Int32");
+				 fields[column].ColumnName, v.MySqlTypeName, "Int32");
 			return ((IConvertible)v.Value).ToInt32(null);
 		}
 
-		public Int64 GetInt64(string name)
+		/// <include file='docs/MySqlDataReader.xml' path='docs/GetInt64/*'/>
+		public Int64 GetInt64(string column)
 		{
-			return GetInt64(GetOrdinal(name));
+			return GetInt64(GetOrdinal(column));
 		}
 
 		/// <include file='docs/MySqlDataReader.xml' path='docs/GetInt64/*'/>
-		public override Int64 GetInt64(int index)
+		public override Int64 GetInt64(int column)
 		{
-			IMySqlValue v = GetFieldValue(index, true);
+			IMySqlValue v = GetFieldValue(column, true);
 			if (v is MySqlInt64)
 				return ((MySqlInt64)v).Value;
 
 			connection.UsageAdvisor.Converting(command.CommandText,
-				 fields[index].ColumnName, v.MySqlTypeName, "Int64");
+				 fields[column].ColumnName, v.MySqlTypeName, "Int64");
 			return ((IConvertible)v.Value).ToInt64(null);
 		}
 
@@ -595,34 +619,36 @@
 			return dataTableSchema;
 		}
 
-		public string GetString(string name)
+		/// <include file='docs/MySqlDataReader.xml' path='docs/GetString/*'/>
+		public string GetString(string column)
 		{
-			return GetString(GetOrdinal(name));
+			return GetString(GetOrdinal(column));
 		}
 
 		/// <include file='docs/MySqlDataReader.xml' path='docs/GetString/*'/>
-		public override String GetString(int index)
+		public override String GetString(int column)
 		{
-			IMySqlValue val = GetFieldValue(index, true);
+			IMySqlValue val = GetFieldValue(column, true);
 
 			if (val is MySqlBinary)
 			{
 				byte[] v = ((MySqlBinary)val).Value;
-				return fields[index].Encoding.GetString(v, 0, v.Length);
+				return fields[column].Encoding.GetString(v, 0, v.Length);
 			}
 
 			return val.Value.ToString();
 		}
 
-		public TimeSpan GetTimeSpan(string name)
+		/// <include file='docs/MySqlDataReader.xml' path='docs/GetTimeSpan/*'/>
+		public TimeSpan GetTimeSpan(string column)
 		{
-			return GetTimeSpan(GetOrdinal(name));
+			return GetTimeSpan(GetOrdinal(column));
 		}
 
 		/// <include file='docs/MySqlDataReader.xml' path='docs/GetTimeSpan/*'/>
-		public TimeSpan GetTimeSpan(int index)
+		public TimeSpan GetTimeSpan(int column)
 		{
-			IMySqlValue val = GetFieldValue(index, true);
+			IMySqlValue val = GetFieldValue(column, true);
 
 			MySqlTimeSpan ts = (MySqlTimeSpan)val;
 			return ts.Value;
@@ -673,54 +699,57 @@
 			return numCols;
 		}
 
-		public UInt16 GetUInt16(string name)
+		/// <include file='docs/MySqlDataReader.xml' path='docs/GetUInt16/*'/>
+		public UInt16 GetUInt16(string column)
 		{
-			return GetUInt16(GetOrdinal(name));
+			return GetUInt16(GetOrdinal(column));
 		}
 
 		/// <include file='docs/MySqlDataReader.xml' path='docs/GetUInt16/*'/>
-		public UInt16 GetUInt16(int index)
+		public UInt16 GetUInt16(int column)
 		{
-			IMySqlValue v = GetFieldValue(index, true);
+			IMySqlValue v = GetFieldValue(column, true);
 			if (v is MySqlUInt16)
 				return ((MySqlUInt16)v).Value;
 
 			connection.UsageAdvisor.Converting(command.CommandText,
-				 fields[index].ColumnName, v.MySqlTypeName, "UInt16");
+				 fields[column].ColumnName, v.MySqlTypeName, "UInt16");
 			return Convert.ToUInt16(v.Value);
 		}
 
-		public UInt32 GetUInt32(string name)
+		/// <include file='docs/MySqlDataReader.xml' path='docs/GetUInt32/*'/>
+		public UInt32 GetUInt32(string column)
 		{
-			return GetUInt32(GetOrdinal(name));
+			return GetUInt32(GetOrdinal(column));
 		}
 
 		/// <include file='docs/MySqlDataReader.xml' path='docs/GetUInt32/*'/>
-		public UInt32 GetUInt32(int index)
+		public UInt32 GetUInt32(int column)
 		{
-			IMySqlValue v = GetFieldValue(index, true);
+			IMySqlValue v = GetFieldValue(column, true);
 			if (v is MySqlUInt32)
 				return ((MySqlUInt32)v).Value;
 
 			connection.UsageAdvisor.Converting(command.CommandText,
-				 fields[index].ColumnName, v.MySqlTypeName, "UInt32");
+				 fields[column].ColumnName, v.MySqlTypeName, "UInt32");
 			return Convert.ToUInt32(v.Value);
 		}
 
-		public UInt64 GetUInt64(string name)
+		/// <include file='docs/MySqlDataReader.xml' path='docs/GetUInt64/*'/>
+		public UInt64 GetUInt64(string column)
 		{
-			return GetUInt64(GetOrdinal(name));
+			return GetUInt64(GetOrdinal(column));
 		}
 
 		/// <include file='docs/MySqlDataReader.xml' path='docs/GetUInt64/*'/>
-		public UInt64 GetUInt64(int index)
+		public UInt64 GetUInt64(int column)
 		{
-			IMySqlValue v = GetFieldValue(index, true);
+			IMySqlValue v = GetFieldValue(column, true);
 			if (v is MySqlUInt64)
 				return ((MySqlUInt64)v).Value;
 
 			connection.UsageAdvisor.Converting(command.CommandText,
-				 fields[index].ColumnName, v.MySqlTypeName, "UInt64");
+				 fields[column].ColumnName, v.MySqlTypeName, "UInt64");
 			return Convert.ToUInt64(v.Value);
 		}
 
@@ -922,6 +951,10 @@
 
 		#region IEnumerator
 
+		/// <summary>
+		/// Returns an <see cref="IEnumerator"/> that iterates through the <see cref="MySqlDataReader"/>. 
+		/// </summary>
+		/// <returns></returns>
 		public override IEnumerator GetEnumerator()
 		{
 			return new DbEnumerator(this);

Modified: trunk/mysqlclient/docs/MySqlDataReader.xml
===================================================================
--- trunk/mysqlclient/docs/MySqlDataReader.xml	2006-11-27 16:28:59 UTC (rev 464)
+++ trunk/mysqlclient/docs/MySqlDataReader.xml	2006-11-27 16:33:59 UTC (rev 465)
@@ -1,309 +1,313 @@
 <docs>
-<ClassSummary>
-  <summary>
-	  Provides a means of reading a forward-only stream of rows from a MySQL database. This class cannot be inherited.
-	</summary>
-  <remarks>
-    <para>To create a <B>MySQLDataReader</B>, you must call the <see cref="MySqlCommand.ExecuteReader()"/>
-	  method of the <see cref="MySqlCommand"/> object, rather than directly using a constructor.
-	  </para>
-	  <para>While the <B>MySqlDataReader</B> is in use, the associated <see cref="MySqlConnection"/>
-	   is busy serving the <B>MySqlDataReader</B>, and no other operations can be performed 
-	   on the <B>MySqlConnection</B> other than closing it. This is the case until the 
-	   <see cref="MySqlDataReader.Close"/> method of the <B>MySqlDataReader</B> is called. 
-	   </para>
-	  <para><see cref="MySqlDataReader.IsClosed"/> and <see cref="MySqlDataReader.RecordsAffected"/> 
-	  are the only properties that you can call after the <B>MySqlDataReader</B> is 
-	  closed. Though the <B>RecordsAffected</B> property may be accessed at any time 
-	  while the <B>MySqlDataReader</B> exists, always call <B>Close</B> before returning 
-	  the value of <B>RecordsAffected</B> to ensure an accurate return value.
-	  </para>
-	  <para>For optimal performance, <B>MySqlDataReader</B> avoids creating 
-	  unnecessary objects or making unnecessary copies of data. As a result, multiple calls 
-	  to methods such as <see cref="MySqlDataReader.GetValue"/> return a reference to the 
-	  same object. Use caution if you are modifying the underlying value of the objects 
-	  returned by methods such as <B>GetValue</B>.
-	  </para>
-  </remarks>
+  <ClassSummary>
+    <summary>
+      Provides a means of reading a forward-only stream of rows from a MySQL database. This class cannot be inherited.
+    </summary>
+    <remarks>
+      <para>
+        To create a <B>MySQLDataReader</B>, you must call the <see cref="MySqlCommand.ExecuteReader()"/>
+        method of the <see cref="MySqlCommand"/> object, rather than directly using a constructor.
+      </para>
+      <para>
+        While the <B>MySqlDataReader</B> is in use, the associated <see cref="MySqlConnection"/>
+        is busy serving the <B>MySqlDataReader</B>, and no other operations can be performed
+        on the <B>MySqlConnection</B> other than closing it. This is the case until the
+        <see cref="MySqlDataReader.Close"/> method of the <B>MySqlDataReader</B> is called.
+      </para>
+      <para>
+        <see cref="MySqlDataReader.IsClosed"/> and <see cref="MySqlDataReader.RecordsAffected"/>
+        are the only properties that you can call after the <B>MySqlDataReader</B> is
+        closed. Though the <B>RecordsAffected</B> property may be accessed at any time
+        while the <B>MySqlDataReader</B> exists, always call <B>Close</B> before returning
+        the value of <B>RecordsAffected</B> to ensure an accurate return value.
+      </para>
+      <para>
+        For optimal performance, <B>MySqlDataReader</B> avoids creating
+        unnecessary objects or making unnecessary copies of data. As a result, multiple calls
+        to methods such as <see cref="MySqlDataReader.GetValue"/> return a reference to the
+        same object. Use caution if you are modifying the underlying value of the objects
+        returned by methods such as <B>GetValue</B>.
+      </para>
+    </remarks>
 
-<example>
-	The following example creates a <see cref="MySqlConnection"/>, 
-	a <see cref="MySqlCommand"/>, and a <B>MySqlDataReader</B>. The example reads through 
-	the data, writing it out to the console. Finally, the example closes the <B>MySqlDataReader</B>, then the 
-	<B>MySqlConnection</B>.
-	<code lang="Visual Basic">
-Public Sub ReadMyData(myConnString As String)
-    Dim mySelectQuery As String = "SELECT OrderID, CustomerID FROM Orders"
-    Dim myConnection As New MySqlConnection(myConnString)
-    Dim myCommand As New MySqlCommand(mySelectQuery, myConnection)
-    myConnection.Open()
-    Dim myReader As MySqlDataReader
-    myReader = myCommand.ExecuteReader()
-    ' Always call Read before accessing data.
-    While myReader.Read()
+    <example>
+      The following example creates a <see cref="MySqlConnection"/>,
+      a <see cref="MySqlCommand"/>, and a <B>MySqlDataReader</B>. The example reads through
+      the data, writing it out to the console. Finally, the example closes the <B>MySqlDataReader</B>, then the
+      <B>MySqlConnection</B>.
+      <code lang="Visual Basic">
+        Public Sub ReadMyData(myConnString As String)
+        Dim mySelectQuery As String = "SELECT OrderID, CustomerID FROM Orders"
+        Dim myConnection As New MySqlConnection(myConnString)
+        Dim myCommand As New MySqlCommand(mySelectQuery, myConnection)
+        myConnection.Open()
+        Dim myReader As MySqlDataReader
+        myReader = myCommand.ExecuteReader()
+        ' Always call Read before accessing data.
+        While myReader.Read()
         Console.WriteLine((myReader.GetInt32(0) &amp; ", " &amp; myReader.GetString(1)))
-    End While
-    ' always call Close when done reading.
-    myReader.Close()
-    ' Close the connection when done with it.
-    myConnection.Close()
-End Sub 'ReadMyData
-	</code>
-	<code lang="C#">
-public void ReadMyData(string myConnString) {
-    string mySelectQuery = "SELECT OrderID, CustomerID FROM Orders";
-    MySqlConnection myConnection = new MySqlConnection(myConnString);
-    MySqlCommand myCommand = new MySqlCommand(mySelectQuery,myConnection);
-    myConnection.Open();
-    MySqlDataReader myReader;
-    myReader = myCommand.ExecuteReader();
-    // Always call Read before accessing data.
-    while (myReader.Read()) {
-       Console.WriteLine(myReader.GetInt32(0) + ", " + myReader.GetString(1));
-    }
-    // always call Close when done reading.
-    myReader.Close();
-    // Close the connection when done with it.
-    myConnection.Close();
- }
-	</code>
-</example>
-</ClassSummary>
+        End While
+        ' always call Close when done reading.
+        myReader.Close()
+        ' Close the connection when done with it.
+        myConnection.Close()
+        End Sub 'ReadMyData
+      </code>
+      <code lang="C#">
+        public void ReadMyData(string myConnString) {
+        string mySelectQuery = "SELECT OrderID, CustomerID FROM Orders";
+        MySqlConnection myConnection = new MySqlConnection(myConnString);
+        MySqlCommand myCommand = new MySqlCommand(mySelectQuery,myConnection);
+        myConnection.Open();
+        MySqlDataReader myReader;
+        myReader = myCommand.ExecuteReader();
+        // Always call Read before accessing data.
+        while (myReader.Read()) {
+        Console.WriteLine(myReader.GetInt32(0) + ", " + myReader.GetString(1));
+        }
+        // always call Close when done reading.
+        myReader.Close();
+        // Close the connection when done with it.
+        myConnection.Close();
+        }
+      </code>
+    </example>
+  </ClassSummary>
 
-<GetBytes>
-	<remarks>
-		<para><B>GetBytes</B> returns the number of available bytes in the field. In most 
-		cases this is the exact length of the field. However, the number returned may be 
-		less than the true length of the field if <B>GetBytes</B> has already been used 
-		to obtain bytes from the field. This may be the case, for example, if the 
-		<see cref="MySqlDataReader"/> is reading a large data structure into a buffer. 
-		For more information, see the <B>SequentialAccess</B> setting for 
-		<see cref="MySqlCommand.CommandBehavior"/>.</para>
-		<para>If you pass a buffer that is a null reference (<B>Nothing</B> in Visual 
-		Basic), <B>GetBytes</B> returns the length of the field in bytes.</para>
-		<para>No conversions are performed; therefore the data retrieved must already be a 
-		byte array.</para>
-	</remarks>
-</GetBytes>
+  <GetBytes>
+    <remarks>
+      <para>
+        <B>GetBytes</B> returns the number of available bytes in the field. In most
+        cases this is the exact length of the field. However, the number returned may be
+        less than the true length of the field if <B>GetBytes</B> has already been used
+        to obtain bytes from the field. This may be the case, for example, if the
+        <see cref="MySqlDataReader"/> is reading a large data structure into a buffer.
+        For more information, see the <B>SequentialAccess</B> setting for
+        <see cref="MySqlCommand.CommandBehavior"/>.
+      </para>
+      <para>
+        If you pass a buffer that is a null reference (<B>Nothing</B> in Visual
+        Basic), <B>GetBytes</B> returns the length of the field in bytes.
+      </para>
+      <para>
+        No conversions are performed; therefore the data retrieved must already be a
+        byte array.
+      </para>
+    </remarks>
+  </GetBytes>
 
-<GetTimeSpan>
-  <overloads/>
-	<summary>Gets the value of the specified column as a <see cref="TimeSpan"/> object.</summary>
-	<remarks>
-    <para>
-      No conversions are performed; therefore, the data retrieved must already be a <b>Time</b> value.
-    </para>
-    <para>
-      Call IsDBNull to check for null values before calling this method.
-    </para>
-  </remarks>
-	<param name="index">The zero-based column ordinal.</param>
-	<returns>The value of the specified column.</returns>
-</GetTimeSpan>
+  <GetTimeSpan>
+    <overloads/>
+    <summary>
+      Gets the value of the specified column as a <see cref="TimeSpan"/> object.
+    </summary>
+    <remarks>
+      <para>
+        No conversions are performed; therefore, the data retrieved must already be a <b>Time</b> value.
+      </para>
+      <para>
+        Call IsDBNull to check for null values before calling this method.
+      </para>
+    </remarks>
+    <param name="column">The zero-based column ordinal or column name.</param>
+    <returns>The value of the specified column.</returns>
+  </GetTimeSpan>
 
-<GetTimeSpanString>
-<summary>
-  Gets the value of the specified column as a <see cref="TimeSpan"/> object.
-</summary>
-<remarks>
-  <para>
-    No conversions are performed; therefore, the data retrieved must already be a <b>Time</b> value.
-  </para>
-  <para>
-    Call IsDBNull to check for null values before calling this method.
-  </para>
-</remarks>
-<param name="name">The name of the column.</param>
-<returns>The value of the specified column.</returns>
-</GetTimeSpanString>
-
   <GetDateTime>
-	<summary>Gets the value of the specified column as a <see cref="DateTime"/> object.</summary>
-	<remarks>
-    <para>
-    No conversions are performed; therefore, the data retrieved must already be a <b>DateTime</b> object.
-    </para>
-    <para>
-      Call IsDBNull to check for null values before calling this method.
-    </para>
-    <note>
-		<para>
-		MySql allows date columns to contain the value '0000-00-00' and datetime
-		columns to contain the value '0000-00-00 00:00:00'.  The DateTime structure cannot contain
-		or represent these values.  To read a datetime value from a column that might
-		contain zero values, use <see cref="GetMySqlDateTime(int)"/>.
-		</para>
-		<para>
-		The behavior of reading a zero datetime column using this method is defined by the
-		<i>ZeroDateTimeBehavior</i> connection string option.  For more information on this option,
-		please refer to <see cref="MySqlConnection.ConnectionString"/>.
-		</para>
-		</note>
-	</remarks>
-	<param name="index">The zero-based column ordinal.</param>
-	<returns>The value of the specified column.</returns>
-</GetDateTime>
+    <summary>
+      Gets the value of the specified column as a <see cref="DateTime"/> object.
+    </summary>
+    <remarks>
+      <para>
+        No conversions are performed; therefore, the data retrieved must already be a <b>DateTime</b> object.
+      </para>
+      <para>
+        Call IsDBNull to check for null values before calling this method.
+      </para>
+      <note>
+        <para>
+          MySql allows date columns to contain the value '0000-00-00' and datetime
+          columns to contain the value '0000-00-00 00:00:00'.  The DateTime structure cannot contain
+          or represent these values.  To read a datetime value from a column that might
+          contain zero values, use <see cref="GetMySqlDateTime(int)"/>.
+        </para>
+        <para>
+          The behavior of reading a zero datetime column using this method is defined by the
+          <i>ZeroDateTimeBehavior</i> connection string option.  For more information on this option,
+          please refer to <see cref="MySqlConnection.ConnectionString"/>.
+        </para>
+      </note>
+    </remarks>
+    <param name="column">The zero-based column ordinal or column name.</param>
+    <returns>The value of the specified column.</returns>
+  </GetDateTime>
 
-<GetMySqlDateTime>
-	<summary>Gets the value of the specified column as a <see cref="MySql.Data.Types.MySqlDateTime"/> object.</summary>
-	<remarks>
-    <para>
-      No conversions are performed; therefore, the data retrieved must already be a <b>DateTime</b> object.
-    </para>
-    <para>
-      Call IsDBNull to check for null values before calling this method.
-    </para>
-  </remarks>
-	<param name="index">The zero-based column ordinal.</param>
-	<returns>The value of the specified column.</returns>
-</GetMySqlDateTime>
+  <GetMySqlDateTime>
+    <summary>
+      Gets the value of the specified column as a <see cref="MySql.Data.Types.MySqlDateTime"/> object.
+    </summary>
+    <remarks>
+      <para>
+        No conversions are performed; therefore, the data retrieved must already be a <b>DateTime</b> object.
+      </para>
+      <para>
+        Call IsDBNull to check for null values before calling this method.
+      </para>
+    </remarks>
+    <param name="column">The zero-based column ordinal or column name.</param>
+    <returns>The value of the specified column.</returns>
+  </GetMySqlDateTime>
 
-<GetString>
-	<summary>Gets the value of the specified column as a <see cref="String"/> object.</summary>
-	<remarks>
-    <para>
-      No conversions are performed; therefore, the data retrieved must already be a <b>String</b> object.
-    </para>
-    <para>
-      Call IsDBNull to check for null values before calling this method.
-    </para>
-  </remarks>
-	<param name="index">The zero-based column ordinal.</param>
-	<returns>The value of the specified column.</returns>
-</GetString>
+  <GetString>
+    <summary>
+      Gets the value of the specified column as a <see cref="String"/> object.
+    </summary>
+    <remarks>
+      <para>
+        No conversions are performed; therefore, the data retrieved must already be a <b>String</b> object.
+      </para>
+      <para>
+        Call IsDBNull to check for null values before calling this method.
+      </para>
+    </remarks>
+    <param name="column">The zero-based column ordinal or column name.</param>
+    <returns>The value of the specified column.</returns>
+  </GetString>
 
-<GetDecimal>
-	<summary>Gets the value of the specified column as a <see cref="Decimal"/> object.</summary>
-	<remarks>
-    <para>
-      No conversions are performed; therefore, the data retrieved must already be a <b>Decimal</b> object.
-    </para>
-    <para>
-      Call IsDBNull to check for null values before calling this method.
-    </para>
-  </remarks>
-	<param name="index">The zero-based column ordinal.</param>
-	<returns>The value of the specified column.</returns>
-</GetDecimal>
+  <GetDecimal>
+    <summary>
+      Gets the value of the specified column as a <see cref="Decimal"/> object.
+    </summary>
+    <remarks>
+      <para>
+        No conversions are performed; therefore, the data retrieved must already be a <b>Decimal</b> object.
+      </para>
+      <para>
+        Call IsDBNull to check for null values before calling this method.
+      </para>
+    </remarks>
+    <param name="column">The zero-based column ordinal or column name.</param>
+    <returns>The value of the specified column.</returns>
+  </GetDecimal>
 
-<GetDouble>
-	<summary>Gets the value of the specified column as a double-precision floating point number.</summary>
-	<remarks>
-    <para>
-      No conversions are performed; therefore, the data retrieved must already be a <b>Double</b> object.
-    </para>
-    <para>
-      Call IsDBNull to check for null values before calling this method.
-    </para>
-  </remarks>
-	<param name="index">The zero-based column ordinal.</param>
-	<returns>The value of the specified column.</returns>
-</GetDouble>
+  <GetDouble>
+    <summary>Gets the value of the specified column as a double-precision floating point number.</summary>
+    <remarks>
+      <para>
+        No conversions are performed; therefore, the data retrieved must already be a <b>Double</b> object.
+      </para>
+      <para>
+        Call IsDBNull to check for null values before calling this method.
+      </para>
+    </remarks>
+    <param name="column">The zero-based column ordinal or colum name.</param>
+    <returns>The value of the specified column.</returns>
+  </GetDouble>
 
-<GetFloat>
-	<summary>
-    Gets the value of the specified column as a single-precision floating point number.
+  <GetFloat>
+    <summary>
+      Gets the value of the specified column as a single-precision floating point number.
     </summary>
-  <remarks>
-    <para>
-      No conversions are performed; therefore, the data retrieved must already be a <b>Float</b> object.
-    </para>
-    <para>
-      Call IsDBNull to check for null values before calling this method.
-    </para>
-  </remarks>
-	<param name="index">The zero-based column ordinal.</param>
-	<returns>The value of the specified column.</returns>
-</GetFloat>
+    <remarks>
+      <para>
+        No conversions are performed; therefore, the data retrieved must already be a <b>Float</b> object.
+      </para>
+      <para>
+        Call IsDBNull to check for null values before calling this method.
+      </para>
+    </remarks>
+    <param name="column">The zero-based column ordinal or column name.</param>
+    <returns>The value of the specified column.</returns>
+  </GetFloat>
 
-<GetGiud>
-	<summary>Gets the value of the specified column as a globally-unique identifier (GUID).</summary>
-	<param name="index">The zero-based column ordinal.</param>
-	<returns>The value of the specified column.</returns>
-</GetGiud>
+  <GetGiud>
+    <summary>Gets the value of the specified column as a globally-unique identifier (GUID).</summary>
+    <param name="column">The zero-based column ordinal or column name.</param>
+    <returns>The value of the specified column.</returns>
+  </GetGiud>
 
-<GetInt16>
-	<summary>Gets the value of the specified column as a 16-bit signed integer.</summary>
-  <remarks>
-    <para>
-      No conversions are performed; therefore, the data retrieved must already be a <b>16 bit integer</b> value.
-    </para>
-    <para>
-      Call IsDBNull to check for null values before calling this method.
-    </para>
-  </remarks>
-	<param name="index">The zero-based column ordinal.</param>
-	<returns>The value of the specified column.</returns>
-</GetInt16>
+  <GetInt16>
+    <summary>Gets the value of the specified column as a 16-bit signed integer.</summary>
+    <remarks>
+      <para>
+        No conversions are performed; therefore, the data retrieved must already be a <b>16 bit integer</b> value.
+      </para>
+      <para>
+        Call IsDBNull to check for null values before calling this method.
+      </para>
+    </remarks>
+    <param name="column">The zero-based column ordinal or column name.</param>
+    <returns>The value of the specified column.</returns>
+  </GetInt16>
 
-<GetInt32>
-	<summary>Gets the value of the specified column as a 32-bit signed integer.</summary>
-  <remarks>
-    <para>
-      No conversions are performed; therefore, the data retrieved must already be a <b>32 bit integer</b> value.
-    </para>
-    <para>
-      Call IsDBNull to check for null values before calling this method.
-    </para>
-  </remarks>
-  <param name="index">The zero-based column ordinal.</param>
-	<returns>The value of the specified column.</returns>
-</GetInt32>
+  <GetInt32>
+    <summary>Gets the value of the specified column as a 32-bit signed integer.</summary>
+    <remarks>
+      <para>
+        No conversions are performed; therefore, the data retrieved must already be a <b>32 bit integer</b> value.
+      </para>
+      <para>
+        Call IsDBNull to check for null values before calling this method.
+      </para>
+    </remarks>
+    <param name="column">The zero-based column ordinal or column name.</param>
+    <returns>The value of the specified column.</returns>
+  </GetInt32>
 
-<GetInt64>
-	<summary>Gets the value of the specified column as a 64-bit signed integer.</summary>
-  <remarks>
-    <para>
-      No conversions are performed; therefore, the data retrieved must already be a <b>64 bit integer</b> value.
-    </para>
-    <para>
-      Call IsDBNull to check for null values before calling this method.
-    </para>
-  </remarks>
-  <param name="index">The zero-based column ordinal.</param>
-	<returns>The value of the specified column.</returns>
-</GetInt64>
+  <GetInt64>
+    <summary>Gets the value of the specified column as a 64-bit signed integer.</summary>
+    <remarks>
+      <para>
+        No conversions are performed; therefore, the data retrieved must already be a <b>64 bit integer</b> value.
+      </para>
+      <para>
+        Call IsDBNull to check for null values before calling this method.
+      </para>
+    </remarks>
+    <param name="column">The zero-based column ordinal or column name.</param>
+    <returns>The value of the specified column.</returns>
+  </GetInt64>
 
-<GetUInt16>
-	<summary>Gets the value of the specified column as a 16-bit unsigned integer.</summary>
-  <remarks>
-    <para>
-      No conversions are performed; therefore, the data retrieved must already be a <b>16 bit unsigned integer</b> value.
-    </para>
-    <para>
-      Call IsDBNull to check for null values before calling this method.
-    </para>
-  </remarks>
-  <param name="index">The zero-based column ordinal.</param>
-	<returns>The value of the specified column.</returns>
-</GetUInt16>
+  <GetUInt16>
+    <summary>Gets the value of the specified column as a 16-bit unsigned integer.</summary>
+    <remarks>
+      <para>
+        No conversions are performed; therefore, the data retrieved must already be a <b>16 bit unsigned integer</b> value.
+      </para>
+      <para>
+        Call IsDBNull to check for null values before calling this method.
+      </para>
+    </remarks>
+    <param name="column">The zero-based column ordinal or column name.</param>
+    <returns>The value of the specified column.</returns>
+  </GetUInt16>
 
-<GetUInt32>
-	<summary>Gets the value of the specified column as a 32-bit unsigned integer.</summary>
-  <remarks>
-    <para>
-      No conversions are performed; therefore, the data retrieved must already be a <b>32 bit unsigned integer</b> value.
-    </para>
-    <para>
-      Call IsDBNull to check for null values before calling this method.
-    </para>
-  </remarks>
-  <param name="index">The zero-based column ordinal.</param>
-	<returns>The value of the specified column.</returns>
-</GetUInt32>
+  <GetUInt32>
+    <summary>Gets the value of the specified column as a 32-bit unsigned integer.</summary>
+    <remarks>
+      <para>
+        No conversions are performed; therefore, the data retrieved must already be a <b>32 bit unsigned integer</b> value.
+      </para>
+      <para>
+        Call IsDBNull to check for null values before calling this method.
+      </para>
+    </remarks>
+    <param name="column">The zero-based column ordinal or column name.</param>
+    <returns>The value of the specified column.</returns>
+  </GetUInt32>
 
-<GetUInt64>
-	<summary>Gets the value of the specified column as a 64-bit unsigned integer.</summary>
-  <remarks>
-    <para>
-      No conversions are performed; therefore, the data retrieved must already be a <b>64 bit unsigned integer</b> value.
-    </para>
-    <para>
-      Call IsDBNull to check for null values before calling this method.
-    </para>
-  </remarks>
-  <param name="index">The zero-based column ordinal.</param>
-	<returns>The value of the specified column.</returns>
-</GetUInt64>
+  <GetUInt64>
+    <summary>Gets the value of the specified column as a 64-bit unsigned integer.</summary>
+    <remarks>
+      <para>
+        No conversions are performed; therefore, the data retrieved must already be a <b>64 bit unsigned integer</b> value.
+      </para>
+      <para>
+        Call IsDBNull to check for null values before calling this method.
+      </para>
+    </remarks>
+    <param name="column">The zero-based column ordinal or column name.</param>
+    <returns>The value of the specified column.</returns>
+  </GetUInt64>
 
 </docs>
\ No newline at end of file

Modified: trunk/mysqlclient/parameter.cs
===================================================================
--- trunk/mysqlclient/parameter.cs	2006-11-27 16:28:59 UTC (rev 464)
+++ trunk/mysqlclient/parameter.cs	2006-11-27 16:33:59 UTC (rev 465)
@@ -40,20 +40,20 @@
 #endif
 	public sealed class MySqlParameter : DbParameter, IDataParameter, IDbDataParameter, ICloneable
 	{
-        private const int UNSIGNED_MASK = 0x8000;
-		private object				paramValue;
-		private ParameterDirection	direction = ParameterDirection.Input;
-		private bool				isNullable  = false;
-		private string				paramName;
-		private string				sourceColumn;
-		private DataRowVersion		sourceVersion = DataRowVersion.Current;
-		private int					size;
-		private byte				precision;
-		private byte				scale;
-		private MySqlDbType			mySqlDbType;
-		private DbType				dbType;
-		private bool				inferType;
-        private bool sourceColumnNullMapping;
+		private const int UNSIGNED_MASK = 0x8000;
+		private object paramValue;
+		private ParameterDirection direction = ParameterDirection.Input;
+		private bool isNullable = false;
+		private string paramName;
+		private string sourceColumn;
+		private DataRowVersion sourceVersion = DataRowVersion.Current;
+		private int size;
+		private byte precision;
+		private byte scale;
+		private MySqlDbType mySqlDbType;
+		private DbType dbType;
+		private bool inferType;
+		private bool sourceColumnNullMapping;
 
 		#region Constructors
 
@@ -70,7 +70,8 @@
 		/// </summary>
 		/// <param name="parameterName">The name of the parameter to map. </param>
 		/// <param name="value">An <see cref="Object"/> that is the value of the <see cref="MySqlParameter"/>. </param>
-		public MySqlParameter(string parameterName, object value) : this ()
+		public MySqlParameter(string parameterName, object value)
+			: this()
 		{
 			ParameterName = parameterName;
 			Value = value;
@@ -81,10 +82,11 @@
 		/// </summary>
 		/// <param name="parameterName">The name of the parameter to map. </param>
 		/// <param name="dbType">One of the <see cref="MySqlDbType"/> values. </param>
-		public MySqlParameter( string parameterName, MySqlDbType dbType) : this (parameterName, null)
+		public MySqlParameter(string parameterName, MySqlDbType dbType)
+			: this(parameterName, null)
 		{
-            MySqlDbType = dbType;
-        }
+			MySqlDbType = dbType;
+		}
 
 		/// <summary>
 		/// Initializes a new instance of the <see cref="MySqlParameter"/> class with the parameter name, the <see cref="MySqlDbType"/>, and the size.
@@ -92,7 +94,8 @@
 		/// <param name="parameterName">The name of the parameter to map. </param>
 		/// <param name="dbType">One of the <see cref="MySqlDbType"/> values. </param>
 		/// <param name="size">The length of the parameter. </param>
-		public MySqlParameter( string parameterName, MySqlDbType dbType, int size ) : this ( parameterName, dbType )
+		public MySqlParameter(string parameterName, MySqlDbType dbType, int size)
+			: this(parameterName, dbType)
 		{
 			this.size = size;
 		}
@@ -104,8 +107,9 @@
 		/// <param name="dbType">One of the <see cref="MySqlDbType"/> values. </param>
 		/// <param name="size">The length of the parameter. </param>
 		/// <param name="sourceColumn">The name of the source column. </param>
-		public MySqlParameter( string parameterName, MySqlDbType dbType, int size, string sourceColumn ) : 
-			this ( parameterName, dbType )
+		public MySqlParameter(string parameterName, MySqlDbType dbType, int size, string sourceColumn)
+			:
+			this(parameterName, dbType)
 		{
 			this.size = size;
 			this.direction = ParameterDirection.Input;
@@ -113,8 +117,9 @@
 			this.sourceVersion = DataRowVersion.Current;
 		}
 
-		internal MySqlParameter(string name, MySqlDbType type, ParameterDirection dir, string col, 
-			DataRowVersion ver, object val) : this (name, type)
+		internal MySqlParameter(string name, MySqlDbType type, ParameterDirection dir, string col,
+			DataRowVersion ver, object val)
+			: this(name, type)
 		{
 			if (direction != ParameterDirection.Input)
 				throw new ArgumentException("Only input parameters are supported by MySql");
@@ -138,9 +143,10 @@
 		/// <param name="sourceVersion">One of the <see cref="DataRowVersion"/> values. </param>
 		/// <param name="value">An <see cref="Object"/> that is the value of the <see cref="MySqlParameter"/>. </param>
 		/// <exception cref="ArgumentException"/>
-		public MySqlParameter( string parameterName, MySqlDbType dbType, int size, ParameterDirection direction,
+		public MySqlParameter(string parameterName, MySqlDbType dbType, int size, ParameterDirection direction,
 			bool isNullable, byte precision, byte scale, string sourceColumn, DataRowVersion sourceVersion,
-			object value) : this (parameterName, dbType, size, sourceColumn)
+			object value)
+			: this(parameterName, dbType, size, sourceColumn)
 		{
 			if (direction != ParameterDirection.Input)
 				throw new ArgumentException("Only input parameters are supported by MySql");
@@ -153,20 +159,20 @@
 
 		#region Properties
 
-        internal bool TypeHasBeenSet
-        {
-            get { return inferType == false; }
-        }
+		internal bool TypeHasBeenSet
+		{
+			get { return inferType == false; }
+		}
 
 		/// <summary>
 		/// Gets or sets the <see cref="DbType"/> of the parameter.
 		/// </summary>
-		public override DbType DbType 
+		public override DbType DbType
 		{
 			get { return dbType; }
-			set 
-			{ 
-				SetDbType(value); 
+			set
+			{
+				SetDbType(value);
 				inferType = false;
 			}
 		}
@@ -178,7 +184,7 @@
 #if !CF
 		[Category("Data")]
 #endif
-		public override ParameterDirection Direction 
+		public override ParameterDirection Direction
 		{
 			get { return direction; }
 			set { direction = value; }
@@ -190,7 +196,7 @@
 #if !CF
 		[Browsable(false)]
 #endif
-		public override Boolean IsNullable 
+		public override Boolean IsNullable
 		{
 			get { return isNullable; }
 			set { isNullable = value; }
@@ -202,12 +208,12 @@
 #if !CF
 		[Category("Data")]
 #endif
-		public MySqlDbType MySqlDbType 
+		public MySqlDbType MySqlDbType
 		{
 			get { return mySqlDbType; }
-			set 
-			{ 
-				SetMySqlDbType(value); 
+			set
+			{
+				SetMySqlDbType(value);
 				inferType = false;
 			}
 		}
@@ -218,7 +224,7 @@
 #if !CF
 		[Category("Misc")]
 #endif
-		public override String ParameterName 
+		public override String ParameterName
 		{
 			get { return paramName; }
 			set { paramName = value; }
@@ -230,7 +236,7 @@
 #if !CF
 		[Category("Data")]
 #endif
-        	public byte Precision
+		public byte Precision
 		{
 			get { return precision; }
 			set { precision = value; }
@@ -242,7 +248,7 @@
 #if !CF
 		[Category("Data")]
 #endif
-        	public byte Scale
+		public byte Scale
 		{
 			get { return scale; }
 			set { scale = value; }
@@ -254,7 +260,7 @@
 #if !CF
 		[Category("Data")]
 #endif
-		public override int Size 
+		public override int Size
 		{
 			get { return size; }
 			set { size = value; }
@@ -266,7 +272,7 @@
 #if !CF
 		[Category("Data")]
 #endif
-		public override String SourceColumn 
+		public override String SourceColumn
 		{
 			get { return sourceColumn; }
 			set { sourceColumn = value; }
@@ -278,7 +284,7 @@
 #if !CF
 		[Category("Data")]
 #endif
-		public override DataRowVersion SourceVersion 
+		public override DataRowVersion SourceVersion
 		{
 			get { return sourceVersion; }
 			set { sourceVersion = value; }
@@ -291,16 +297,16 @@
 		[TypeConverter(typeof(StringConverter))]
 		[Category("Data")]
 #endif
-		public override object Value 
+		public override object Value
 		{
-			get	{ return paramValue; }
-			set	
+			get { return paramValue; }
+			set
 			{
 				paramValue = value;
-                if (value is Byte[])
-                    size = (value as Byte[]).Length;
-                else if (value is String)
-                    size = (value as string).Length;
+				if (value is Byte[])
+					size = (value as Byte[]).Length;
+				else if (value is String)
+					size = (value as string).Length;
 				if (inferType)
 					SetTypeFromValue();
 			}
@@ -312,59 +318,59 @@
 		/// Overridden. Gets a string containing the <see cref="ParameterName"/>.
 		/// </summary>
 		/// <returns></returns>
-		public override string ToString() 
+		public override string ToString()
 		{
 			return paramName;
 		}
 
 		internal int GetPSType()
 		{
-            switch (mySqlDbType)
-            {
-                case MySqlDbType.Bit:
-                    return (int)MySqlDbType.Int64 | UNSIGNED_MASK;
-                case MySqlDbType.UByte:
-                    return (int)MySqlDbType.Byte | UNSIGNED_MASK;
-                case MySqlDbType.UInt64:
-                    return (int)MySqlDbType.Int64 | UNSIGNED_MASK;
-                case MySqlDbType.UInt32:
-                    return (int)MySqlDbType.Int32 | UNSIGNED_MASK;
-                case MySqlDbType.UInt24:
-                    return (int)MySqlDbType.Int32 | UNSIGNED_MASK;
-                case MySqlDbType.UInt16:
-                    return (int)MySqlDbType.Int16 | UNSIGNED_MASK;
-                default:
-                    return (int)this.mySqlDbType;
-            }
+			switch (mySqlDbType)
+			{
+				case MySqlDbType.Bit:
+					return (int)MySqlDbType.Int64 | UNSIGNED_MASK;
+				case MySqlDbType.UByte:
+					return (int)MySqlDbType.Byte | UNSIGNED_MASK;
+				case MySqlDbType.UInt64:
+					return (int)MySqlDbType.Int64 | UNSIGNED_MASK;
+				case MySqlDbType.UInt32:
+					return (int)MySqlDbType.Int32 | UNSIGNED_MASK;
+				case MySqlDbType.UInt24:
+					return (int)MySqlDbType.Int32 | UNSIGNED_MASK;
+				case MySqlDbType.UInt16:
+					return (int)MySqlDbType.Int16 | UNSIGNED_MASK;
+				default:
+					return (int)this.mySqlDbType;
+			}
 		}
 
-        internal void Serialize(MySqlStream stream, bool binary)
-        {
-            IMySqlValue v = MySqlField.GetIMySqlValue(mySqlDbType, true);
+		internal void Serialize(MySqlStream stream, bool binary)
+		{
+			IMySqlValue v = MySqlField.GetIMySqlValue(mySqlDbType, true);
 
-            if (!binary && (paramValue == null || paramValue == DBNull.Value))
-                stream.WriteStringNoNull("NULL");
-            else
-                v.WriteValue(stream, binary, paramValue, size);
-        }
+			if (!binary && (paramValue == null || paramValue == DBNull.Value))
+				stream.WriteStringNoNull("NULL");
+			else
+				v.WriteValue(stream, binary, paramValue, size);
+		}
 
-		private void SetMySqlDbType(MySqlDbType mySqlDbType) 
+		private void SetMySqlDbType(MySqlDbType mySqlDbType)
 		{
 			this.mySqlDbType = mySqlDbType;
-			switch (mySqlDbType) 
+			switch (mySqlDbType)
 			{
 				case MySqlDbType.Decimal: dbType = DbType.Decimal; break;
 				case MySqlDbType.Byte: dbType = DbType.SByte; break;
 				case MySqlDbType.UByte: dbType = DbType.Byte; break;
 				case MySqlDbType.Int16: dbType = DbType.Int16; break;
 				case MySqlDbType.UInt16: dbType = DbType.UInt16; break;
-				case MySqlDbType.Int24: 
+				case MySqlDbType.Int24:
 				case MySqlDbType.Int32: dbType = DbType.Int32; break;
 				case MySqlDbType.UInt24:
 				case MySqlDbType.UInt32: dbType = DbType.UInt32; break;
 				case MySqlDbType.Int64: dbType = DbType.Int64; break;
 				case MySqlDbType.UInt64: dbType = DbType.UInt64; break;
-				case MySqlDbType.Bit : dbType = DbType.UInt64; break;
+				case MySqlDbType.Bit: dbType = DbType.UInt64; break;
 				case MySqlDbType.Float: dbType = DbType.Single; break;
 				case MySqlDbType.Double: dbType = DbType.Double; break;
 				case MySqlDbType.Timestamp:
@@ -375,20 +381,20 @@
 				case MySqlDbType.Time: dbType = DbType.Time; break;
 				case MySqlDbType.Enum:
 				case MySqlDbType.Set:
-				case MySqlDbType.VarChar: dbType = DbType.String;  break;
+				case MySqlDbType.VarChar: dbType = DbType.String; break;
 				case MySqlDbType.TinyBlob:
 				case MySqlDbType.MediumBlob:
 				case MySqlDbType.LongBlob:
-                case MySqlDbType.Blob: dbType = DbType.Object; break;
+				case MySqlDbType.Blob: dbType = DbType.Object; break;
 				case MySqlDbType.String: dbType = DbType.StringFixedLength; break;
 			}
 		}
 
 
-		private void SetDbType(DbType dbType) 
+		private void SetDbType(DbType dbType)
 		{
 			this.dbType = dbType;
-			switch (dbType) 
+			switch (dbType)
 			{
 				case DbType.Guid:
 				case DbType.AnsiString:
@@ -412,7 +418,7 @@
 				case DbType.Double: mySqlDbType = MySqlDbType.Double; break;
 
 				case DbType.Int16: mySqlDbType = MySqlDbType.Int16; break;
-				case DbType.UInt16:	mySqlDbType = MySqlDbType.UInt16; break;
+				case DbType.UInt16: mySqlDbType = MySqlDbType.UInt16; break;
 
 				case DbType.Int32: mySqlDbType = MySqlDbType.Int32; break;
 				case DbType.UInt32: mySqlDbType = MySqlDbType.UInt32; break;
@@ -424,29 +430,29 @@
 				case DbType.Currency: mySqlDbType = MySqlDbType.Decimal; break;
 
 				case DbType.Object:
-				case DbType.VarNumeric: 
-				case DbType.Binary: 
-				default: 
+				case DbType.VarNumeric:
+				case DbType.Binary:
+				default:
 					mySqlDbType = MySqlDbType.Blob; break;
 			}
 		}
 
 
-		private void SetTypeFromValue() 
+		private void SetTypeFromValue()
 		{
 			if (paramValue == null) return;
 
-			if (paramValue is Guid) 
-                DbType = DbType.String;
-			else if (paramValue is TimeSpan) 
-                DbType = DbType.Time;
-			else if (paramValue is bool) 
-                DbType = DbType.Byte;
-			else 
+			if (paramValue is Guid)
+				DbType = DbType.String;
+			else if (paramValue is TimeSpan)
+				DbType = DbType.Time;
+			else if (paramValue is bool)
+				DbType = DbType.Byte;
+			else
 			{
 
 				TypeCode tc = Type.GetTypeCode(paramValue.GetType());
-				switch (tc) 
+				switch (tc)
 				{
 					case TypeCode.SByte: DbType = DbType.SByte; break;
 					case TypeCode.Byte: DbType = DbType.Byte; break;
@@ -460,18 +466,18 @@
 					case TypeCode.String: DbType = DbType.String; break;
 					case TypeCode.Single: DbType = DbType.Single; break;
 					case TypeCode.Double: DbType = DbType.Double; break;
-                    case TypeCode.Decimal: DbType = DbType.Decimal; break;
-					case TypeCode.Object: 
+					case TypeCode.Decimal: DbType = DbType.Decimal; break;
+					case TypeCode.Object:
 					default: DbType = DbType.Object; break;
 				}
 			}
 		}
 
 		#region ICloneable
-		object System.ICloneable.Clone() 
+		object System.ICloneable.Clone()
 		{
-			MySqlParameter clone = new MySqlParameter( paramName, mySqlDbType, direction,
-				sourceColumn, sourceVersion, paramValue );
+			MySqlParameter clone = new MySqlParameter(paramName, mySqlDbType, direction,
+				sourceColumn, sourceVersion, paramValue);
 			return clone;
 		}
 		#endregion
@@ -490,7 +496,7 @@
 				return base.CanConvertTo(context, destinationType);
 			}
 
-			public override object ConvertTo(ITypeDescriptorContext context, 
+			public override object ConvertTo(ITypeDescriptorContext context,
 				System.Globalization.CultureInfo culture, object value, Type destinationType)
 			{
 				if (destinationType == typeof(InstanceDescriptor))
@@ -499,8 +505,8 @@
 						new Type[]{typeof(string), typeof(MySqlDbType), typeof(int), typeof(ParameterDirection),
 									  typeof(bool), typeof(byte), typeof(byte), typeof(string), typeof(DataRowVersion),
 									  typeof(object)});
-					MySqlParameter p = (MySqlParameter) value;
-					return new InstanceDescriptor(ci,new object[]{ 
+					MySqlParameter p = (MySqlParameter)value;
+					return new InstanceDescriptor(ci, new object[]{ 
 																	 p.ParameterName, p.DbType, p.Size, p.Direction, p.IsNullable, p.Precision,
 																	 p.Scale, p.SourceColumn, p.SourceVersion, p.Value});
 				}
@@ -511,15 +517,23 @@
 		}
 #endif
 
-        public override void ResetDbType()
-        {
-            this.inferType = true;
-        }
+		/// <summary>
+		/// Resets the <b>DbType</b> property to its original settings. 
+		/// </summary>
+		public override void ResetDbType()
+		{
+			this.inferType = true;
+		}
 
-        public override bool SourceColumnNullMapping
-        {
-            get { return sourceColumnNullMapping; }
-            set { sourceColumnNullMapping = value; }
-        }
+		/// <summary>
+		/// Sets or gets a value which indicates whether the source column is nullable. 
+		/// This allows <see cref="DbCommandBuilder"/> to correctly generate Update statements 
+		/// for nullable columns. 
+		/// </summary>
+		public override bool SourceColumnNullMapping
+		{
+			get { return sourceColumnNullMapping; }
+			set { sourceColumnNullMapping = value; }
+		}
+	}
 }
-}

Modified: trunk/mysqlclient/parameter_collection.cs
===================================================================
--- trunk/mysqlclient/parameter_collection.cs	2006-11-27 16:28:59 UTC (rev 464)
+++ trunk/mysqlclient/parameter_collection.cs	2006-11-27 16:33:59 UTC (rev 465)
@@ -41,7 +41,7 @@
 		private Hashtable ciHash;
 		private Hashtable hash;
 
-		public MySqlParameterCollection()
+		internal MySqlParameterCollection()
 		{
 			hash = new Hashtable();
 #if NET20
@@ -181,6 +181,10 @@
 
 		#region DbParameterCollection Implementation
 
+        /// <summary>
+        /// Adds an array of values to the end of the <see cref="MySqlParameterCollection"/>. 
+        /// </summary>
+        /// <param name="values"></param>
 		public override void AddRange(Array values)
 		{
 			foreach (DbParameter p in values)
@@ -309,6 +313,10 @@
 			get { return items.Count; }
 		}
 
+        /// <summary>
+        /// Returns an enumerator that iterates through the <see cref="MySqlParameterCollection"/>. 
+        /// </summary>
+        /// <returns></returns>
 		public override IEnumerator GetEnumerator()
 		{
 			return ((IEnumerable)items).GetEnumerator();
@@ -350,16 +358,28 @@
 			items.Insert(index, value);
 		}
 
+        /// <summary>
+        /// Gets a value that indicates whether the <see cref="MySqlParameterCollection"/>
+        /// has a fixed size. 
+        /// </summary>
 		public override bool IsFixedSize
 		{
 			get { return items.IsFixedSize; }
 		}
 
+        /// <summary>
+        /// Gets a value that indicates whether the <see cref="MySqlParameterCollection"/>
+        /// is read-only. 
+        /// </summary>
 		public override bool IsReadOnly
 		{
 			get { return items.IsReadOnly; }
 		}
 
+        /// <summary>
+        /// Gets a value that indicates whether the <see cref="MySqlParameterCollection"/>
+        /// is synchronized. 
+        /// </summary>
 		public override bool IsSynchronized
 		{
 			get { return items.IsSynchronized; }
@@ -394,6 +414,10 @@
 			items.RemoveAt(index);
 		}
 
+        /// <summary>
+        /// Gets an object that can be used to synchronize access to the 
+        /// <see cref="MySqlParameterCollection"/>. 
+        /// </summary>
 		public override object SyncRoot
 		{
 			get { return items.SyncRoot; }

Thread
Connector/NET commit: r465 - in trunk/mysqlclient: . docsrburnett27 Nov