Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Data / System / Data / SqlClient / SqlDataAdapter.cs / 1 / SqlDataAdapter.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- namespace System.Data.SqlClient { using System; using System.Collections; using System.ComponentModel; using System.Data.Common; using System.Diagnostics; [ DefaultEvent("RowUpdated"), ToolboxItem("Microsoft.VSDesigner.Data.VS.SqlDataAdapterToolboxItem, " + AssemblyRef.MicrosoftVSDesigner), Designer("Microsoft.VSDesigner.Data.VS.SqlDataAdapterDesigner, " + AssemblyRef.MicrosoftVSDesigner) ] #if WINFSInternalOnly internal #else public #endif sealed class SqlDataAdapter : DbDataAdapter, IDbDataAdapter, ICloneable { static private readonly object EventRowUpdated = new object(); static private readonly object EventRowUpdating = new object(); private SqlCommand _deleteCommand, _insertCommand, _selectCommand, _updateCommand; private SqlCommandSet _commandSet; private int _updateBatchSize = 1; public SqlDataAdapter() : base() { GC.SuppressFinalize(this); } public SqlDataAdapter(SqlCommand selectCommand) : this() { SelectCommand = selectCommand; } public SqlDataAdapter(string selectCommandText, string selectConnectionString) : this() { SqlConnection connection = new SqlConnection(selectConnectionString); SelectCommand = new SqlCommand(selectCommandText, connection); } public SqlDataAdapter(string selectCommandText, SqlConnection selectConnection) : this() { SelectCommand = new SqlCommand(selectCommandText, selectConnection); } private SqlDataAdapter(SqlDataAdapter from) : base(from) { // Clone GC.SuppressFinalize(this); } [ DefaultValue(null), Editor("Microsoft.VSDesigner.Data.Design.DBCommandEditor, " + AssemblyRef.MicrosoftVSDesigner, "System.Drawing.Design.UITypeEditor, " + AssemblyRef.SystemDrawing), ResCategoryAttribute(Res.DataCategory_Update), ResDescriptionAttribute(Res.DbDataAdapter_DeleteCommand), ] new public SqlCommand DeleteCommand { get { return _deleteCommand; } set { _deleteCommand = value; } } IDbCommand IDbDataAdapter.DeleteCommand { get { return _deleteCommand; } set { _deleteCommand = (SqlCommand)value; } } [ DefaultValue(null), Editor("Microsoft.VSDesigner.Data.Design.DBCommandEditor, " + AssemblyRef.MicrosoftVSDesigner, "System.Drawing.Design.UITypeEditor, " + AssemblyRef.SystemDrawing), ResCategoryAttribute(Res.DataCategory_Update), ResDescriptionAttribute(Res.DbDataAdapter_InsertCommand), ] new public SqlCommand InsertCommand { get { return _insertCommand; } set { _insertCommand = value; } } IDbCommand IDbDataAdapter.InsertCommand { get { return _insertCommand; } set { _insertCommand = (SqlCommand)value; } } [ DefaultValue(null), Editor("Microsoft.VSDesigner.Data.Design.DBCommandEditor, " + AssemblyRef.MicrosoftVSDesigner, "System.Drawing.Design.UITypeEditor, " + AssemblyRef.SystemDrawing), ResCategoryAttribute(Res.DataCategory_Fill), ResDescriptionAttribute(Res.DbDataAdapter_SelectCommand), ] new public SqlCommand SelectCommand { get { return _selectCommand; } set { _selectCommand = value; } } IDbCommand IDbDataAdapter.SelectCommand { get { return _selectCommand; } set { _selectCommand = (SqlCommand)value; } } override public int UpdateBatchSize { get { return _updateBatchSize; } set { if (0 > value) { // WebData 98157 throw ADP.ArgumentOutOfRange("UpdateBatchSize"); } _updateBatchSize = value; Bid.Trace("%d#, %d\n", ObjectID, value); } } [ DefaultValue(null), Editor("Microsoft.VSDesigner.Data.Design.DBCommandEditor, " + AssemblyRef.MicrosoftVSDesigner, "System.Drawing.Design.UITypeEditor, " + AssemblyRef.SystemDrawing), ResCategoryAttribute(Res.DataCategory_Update), ResDescriptionAttribute(Res.DbDataAdapter_UpdateCommand), ] new public SqlCommand UpdateCommand { get { return _updateCommand; } set { _updateCommand = value; } } IDbCommand IDbDataAdapter.UpdateCommand { get { return _updateCommand; } set { _updateCommand = (SqlCommand)value; } } [ ResCategoryAttribute(Res.DataCategory_Update), ResDescriptionAttribute(Res.DbDataAdapter_RowUpdated), ] public event SqlRowUpdatedEventHandler RowUpdated { add { Events.AddHandler(EventRowUpdated, value); } remove { Events.RemoveHandler(EventRowUpdated, value); } } [ ResCategoryAttribute(Res.DataCategory_Update), ResDescriptionAttribute(Res.DbDataAdapter_RowUpdating), ] public event SqlRowUpdatingEventHandler RowUpdating { add { SqlRowUpdatingEventHandler handler = (SqlRowUpdatingEventHandler) Events[EventRowUpdating]; // MDAC 58177, 64513 // prevent someone from registering two different command builders on the adapter by // silently removing the old one if ((null != handler) && (value.Target is DbCommandBuilder)) { SqlRowUpdatingEventHandler d = (SqlRowUpdatingEventHandler) ADP.FindBuilder(handler); if (null != d) { Events.RemoveHandler(EventRowUpdating, d); } } Events.AddHandler(EventRowUpdating, value); } remove { Events.RemoveHandler(EventRowUpdating, value); } } override protected int AddToBatch(IDbCommand command) { int commandIdentifier = _commandSet.CommandCount; _commandSet.Append((SqlCommand)command); return commandIdentifier; } override protected void ClearBatch() { _commandSet.Clear(); } object ICloneable.Clone() { return new SqlDataAdapter(this); } override protected RowUpdatedEventArgs CreateRowUpdatedEvent(DataRow dataRow, IDbCommand command, StatementType statementType, DataTableMapping tableMapping) { return new SqlRowUpdatedEventArgs(dataRow, command, statementType, tableMapping); } override protected RowUpdatingEventArgs CreateRowUpdatingEvent(DataRow dataRow, IDbCommand command, StatementType statementType, DataTableMapping tableMapping) { return new SqlRowUpdatingEventArgs(dataRow, command, statementType, tableMapping); } override protected int ExecuteBatch() { Debug.Assert(null != _commandSet && (0 < _commandSet.CommandCount), "no commands"); return _commandSet.ExecuteNonQuery(); } override protected IDataParameter GetBatchedParameter(int commandIdentifier, int parameterIndex) { Debug.Assert(commandIdentifier < _commandSet.CommandCount, "commandIdentifier out of range"); Debug.Assert(parameterIndex < _commandSet.GetParameterCount(commandIdentifier), "parameter out of range"); IDataParameter parameter = _commandSet.GetParameter(commandIdentifier, parameterIndex); return parameter; } override protected bool GetBatchedRecordsAffected(int commandIdentifier, out int recordsAffected, out Exception error) { Debug.Assert(commandIdentifier < _commandSet.CommandCount, "commandIdentifier out of range"); return _commandSet.GetBatchedAffected(commandIdentifier, out recordsAffected, out error); } override protected void InitializeBatching() { Bid.Trace(" %d#\n", ObjectID); _commandSet = new SqlCommandSet(); SqlCommand command = SelectCommand; if (null == command) { command = InsertCommand; if (null == command) { command = UpdateCommand; if (null == command) { command = DeleteCommand; } } } if (null != command) { _commandSet.Connection = command.Connection; _commandSet.Transaction = command.Transaction; _commandSet.CommandTimeout = command.CommandTimeout; } } override protected void OnRowUpdated(RowUpdatedEventArgs value) { SqlRowUpdatedEventHandler handler = (SqlRowUpdatedEventHandler) Events[EventRowUpdated]; if ((null != handler) && (value is SqlRowUpdatedEventArgs)) { handler(this, (SqlRowUpdatedEventArgs) value); } base.OnRowUpdated(value); } override protected void OnRowUpdating(RowUpdatingEventArgs value) { SqlRowUpdatingEventHandler handler = (SqlRowUpdatingEventHandler) Events[EventRowUpdating]; if ((null != handler) && (value is SqlRowUpdatingEventArgs)) { handler(this, (SqlRowUpdatingEventArgs) value); } base.OnRowUpdating(value); } override protected void TerminateBatching() { if (null != _commandSet) { _commandSet.Dispose(); _commandSet = null; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- namespace System.Data.SqlClient { using System; using System.Collections; using System.ComponentModel; using System.Data.Common; using System.Diagnostics; [ DefaultEvent("RowUpdated"), ToolboxItem("Microsoft.VSDesigner.Data.VS.SqlDataAdapterToolboxItem, " + AssemblyRef.MicrosoftVSDesigner), Designer("Microsoft.VSDesigner.Data.VS.SqlDataAdapterDesigner, " + AssemblyRef.MicrosoftVSDesigner) ] #if WINFSInternalOnly internal #else public #endif sealed class SqlDataAdapter : DbDataAdapter, IDbDataAdapter, ICloneable { static private readonly object EventRowUpdated = new object(); static private readonly object EventRowUpdating = new object(); private SqlCommand _deleteCommand, _insertCommand, _selectCommand, _updateCommand; private SqlCommandSet _commandSet; private int _updateBatchSize = 1; public SqlDataAdapter() : base() { GC.SuppressFinalize(this); } public SqlDataAdapter(SqlCommand selectCommand) : this() { SelectCommand = selectCommand; } public SqlDataAdapter(string selectCommandText, string selectConnectionString) : this() { SqlConnection connection = new SqlConnection(selectConnectionString); SelectCommand = new SqlCommand(selectCommandText, connection); } public SqlDataAdapter(string selectCommandText, SqlConnection selectConnection) : this() { SelectCommand = new SqlCommand(selectCommandText, selectConnection); } private SqlDataAdapter(SqlDataAdapter from) : base(from) { // Clone GC.SuppressFinalize(this); } [ DefaultValue(null), Editor("Microsoft.VSDesigner.Data.Design.DBCommandEditor, " + AssemblyRef.MicrosoftVSDesigner, "System.Drawing.Design.UITypeEditor, " + AssemblyRef.SystemDrawing), ResCategoryAttribute(Res.DataCategory_Update), ResDescriptionAttribute(Res.DbDataAdapter_DeleteCommand), ] new public SqlCommand DeleteCommand { get { return _deleteCommand; } set { _deleteCommand = value; } } IDbCommand IDbDataAdapter.DeleteCommand { get { return _deleteCommand; } set { _deleteCommand = (SqlCommand)value; } } [ DefaultValue(null), Editor("Microsoft.VSDesigner.Data.Design.DBCommandEditor, " + AssemblyRef.MicrosoftVSDesigner, "System.Drawing.Design.UITypeEditor, " + AssemblyRef.SystemDrawing), ResCategoryAttribute(Res.DataCategory_Update), ResDescriptionAttribute(Res.DbDataAdapter_InsertCommand), ] new public SqlCommand InsertCommand { get { return _insertCommand; } set { _insertCommand = value; } } IDbCommand IDbDataAdapter.InsertCommand { get { return _insertCommand; } set { _insertCommand = (SqlCommand)value; } } [ DefaultValue(null), Editor("Microsoft.VSDesigner.Data.Design.DBCommandEditor, " + AssemblyRef.MicrosoftVSDesigner, "System.Drawing.Design.UITypeEditor, " + AssemblyRef.SystemDrawing), ResCategoryAttribute(Res.DataCategory_Fill), ResDescriptionAttribute(Res.DbDataAdapter_SelectCommand), ] new public SqlCommand SelectCommand { get { return _selectCommand; } set { _selectCommand = value; } } IDbCommand IDbDataAdapter.SelectCommand { get { return _selectCommand; } set { _selectCommand = (SqlCommand)value; } } override public int UpdateBatchSize { get { return _updateBatchSize; } set { if (0 > value) { // WebData 98157 throw ADP.ArgumentOutOfRange("UpdateBatchSize"); } _updateBatchSize = value; Bid.Trace("%d#, %d\n", ObjectID, value); } } [ DefaultValue(null), Editor("Microsoft.VSDesigner.Data.Design.DBCommandEditor, " + AssemblyRef.MicrosoftVSDesigner, "System.Drawing.Design.UITypeEditor, " + AssemblyRef.SystemDrawing), ResCategoryAttribute(Res.DataCategory_Update), ResDescriptionAttribute(Res.DbDataAdapter_UpdateCommand), ] new public SqlCommand UpdateCommand { get { return _updateCommand; } set { _updateCommand = value; } } IDbCommand IDbDataAdapter.UpdateCommand { get { return _updateCommand; } set { _updateCommand = (SqlCommand)value; } } [ ResCategoryAttribute(Res.DataCategory_Update), ResDescriptionAttribute(Res.DbDataAdapter_RowUpdated), ] public event SqlRowUpdatedEventHandler RowUpdated { add { Events.AddHandler(EventRowUpdated, value); } remove { Events.RemoveHandler(EventRowUpdated, value); } } [ ResCategoryAttribute(Res.DataCategory_Update), ResDescriptionAttribute(Res.DbDataAdapter_RowUpdating), ] public event SqlRowUpdatingEventHandler RowUpdating { add { SqlRowUpdatingEventHandler handler = (SqlRowUpdatingEventHandler) Events[EventRowUpdating]; // MDAC 58177, 64513 // prevent someone from registering two different command builders on the adapter by // silently removing the old one if ((null != handler) && (value.Target is DbCommandBuilder)) { SqlRowUpdatingEventHandler d = (SqlRowUpdatingEventHandler) ADP.FindBuilder(handler); if (null != d) { Events.RemoveHandler(EventRowUpdating, d); } } Events.AddHandler(EventRowUpdating, value); } remove { Events.RemoveHandler(EventRowUpdating, value); } } override protected int AddToBatch(IDbCommand command) { int commandIdentifier = _commandSet.CommandCount; _commandSet.Append((SqlCommand)command); return commandIdentifier; } override protected void ClearBatch() { _commandSet.Clear(); } object ICloneable.Clone() { return new SqlDataAdapter(this); } override protected RowUpdatedEventArgs CreateRowUpdatedEvent(DataRow dataRow, IDbCommand command, StatementType statementType, DataTableMapping tableMapping) { return new SqlRowUpdatedEventArgs(dataRow, command, statementType, tableMapping); } override protected RowUpdatingEventArgs CreateRowUpdatingEvent(DataRow dataRow, IDbCommand command, StatementType statementType, DataTableMapping tableMapping) { return new SqlRowUpdatingEventArgs(dataRow, command, statementType, tableMapping); } override protected int ExecuteBatch() { Debug.Assert(null != _commandSet && (0 < _commandSet.CommandCount), "no commands"); return _commandSet.ExecuteNonQuery(); } override protected IDataParameter GetBatchedParameter(int commandIdentifier, int parameterIndex) { Debug.Assert(commandIdentifier < _commandSet.CommandCount, "commandIdentifier out of range"); Debug.Assert(parameterIndex < _commandSet.GetParameterCount(commandIdentifier), "parameter out of range"); IDataParameter parameter = _commandSet.GetParameter(commandIdentifier, parameterIndex); return parameter; } override protected bool GetBatchedRecordsAffected(int commandIdentifier, out int recordsAffected, out Exception error) { Debug.Assert(commandIdentifier < _commandSet.CommandCount, "commandIdentifier out of range"); return _commandSet.GetBatchedAffected(commandIdentifier, out recordsAffected, out error); } override protected void InitializeBatching() { Bid.Trace(" %d#\n", ObjectID); _commandSet = new SqlCommandSet(); SqlCommand command = SelectCommand; if (null == command) { command = InsertCommand; if (null == command) { command = UpdateCommand; if (null == command) { command = DeleteCommand; } } } if (null != command) { _commandSet.Connection = command.Connection; _commandSet.Transaction = command.Transaction; _commandSet.CommandTimeout = command.CommandTimeout; } } override protected void OnRowUpdated(RowUpdatedEventArgs value) { SqlRowUpdatedEventHandler handler = (SqlRowUpdatedEventHandler) Events[EventRowUpdated]; if ((null != handler) && (value is SqlRowUpdatedEventArgs)) { handler(this, (SqlRowUpdatedEventArgs) value); } base.OnRowUpdated(value); } override protected void OnRowUpdating(RowUpdatingEventArgs value) { SqlRowUpdatingEventHandler handler = (SqlRowUpdatingEventHandler) Events[EventRowUpdating]; if ((null != handler) && (value is SqlRowUpdatingEventArgs)) { handler(this, (SqlRowUpdatingEventArgs) value); } base.OnRowUpdating(value); } override protected void TerminateBatching() { if (null != _commandSet) { _commandSet.Dispose(); _commandSet = null; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RectAnimationBase.cs
- RequestBringIntoViewEventArgs.cs
- RequestValidator.cs
- MdiWindowListItemConverter.cs
- EventMap.cs
- BaseValidator.cs
- RouteData.cs
- EncoderParameters.cs
- InsufficientMemoryException.cs
- TreeNodeStyleCollectionEditor.cs
- CanonicalizationDriver.cs
- Directory.cs
- ResourceDictionary.cs
- Item.cs
- LinkLabel.cs
- PersonalizationState.cs
- DataGridViewComboBoxColumn.cs
- CompilationLock.cs
- ToolStripDesignerAvailabilityAttribute.cs
- FragmentQueryProcessor.cs
- WindowsFont.cs
- StandardBindingImporter.cs
- PersistenceTypeAttribute.cs
- ScaleTransform3D.cs
- TextElementEnumerator.cs
- ProcessProtocolHandler.cs
- SecurityTokenProvider.cs
- RowBinding.cs
- SqlDependencyListener.cs
- XsdBuilder.cs
- _MultipleConnectAsync.cs
- AbstractDataSvcMapFileLoader.cs
- Registry.cs
- OdbcPermission.cs
- RegexTree.cs
- StateInitializationDesigner.cs
- HostProtectionPermission.cs
- BitmapEffect.cs
- UITypeEditors.cs
- EventLevel.cs
- HtmlElementCollection.cs
- SqlStatistics.cs
- SortAction.cs
- KeyPressEvent.cs
- SimpleMailWebEventProvider.cs
- WorkflowTimerService.cs
- ColumnPropertiesGroup.cs
- SystemFonts.cs
- WebPartConnectionsConfigureVerb.cs
- TakeQueryOptionExpression.cs
- SafeCryptHandles.cs
- CryptoApi.cs
- SchemaImporterExtension.cs
- XmlDomTextWriter.cs
- CompiledRegexRunner.cs
- Peer.cs
- JulianCalendar.cs
- RemotingClientProxy.cs
- ManifestBasedResourceGroveler.cs
- AsymmetricSignatureFormatter.cs
- SessionStateUtil.cs
- SetterBase.cs
- Inline.cs
- PassportPrincipal.cs
- RtfToXamlLexer.cs
- EnumerableWrapperWeakToStrong.cs
- WebAdminConfigurationHelper.cs
- FastPropertyAccessor.cs
- BitmapSourceSafeMILHandle.cs
- HashHelpers.cs
- Input.cs
- SessionEndedEventArgs.cs
- EtwTrackingBehavior.cs
- ServiceRouteHandler.cs
- CalendarDateChangedEventArgs.cs
- RelationshipEndMember.cs
- Decoder.cs
- X509ScopedServiceCertificateElement.cs
- SHA1Managed.cs
- ObjectParameterCollection.cs
- GeometryDrawing.cs
- StreamReader.cs
- ObjectTag.cs
- InputManager.cs
- InitializerFacet.cs
- CompareValidator.cs
- CssClassPropertyAttribute.cs
- InternalResources.cs
- TemplateXamlTreeBuilder.cs
- RegexStringValidator.cs
- PointCollection.cs
- HMACSHA256.cs
- XmlMessageFormatter.cs
- Geometry3D.cs
- Image.cs
- MouseWheelEventArgs.cs
- ResourceContainer.cs
- PasswordBox.cs
- RoutedEventArgs.cs
- ToolboxComponentsCreatingEventArgs.cs