Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Data / System / Data / SqlClient / SqlException.cs / 1 / SqlException.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
// [....]
//-----------------------------------------------------------------------------
namespace System.Data.SqlClient {
using System;
using System.ComponentModel;
using System.Data.Common;
using System.Diagnostics;
using System.Globalization;
using System.Runtime.Serialization;
using System.Text; // StringBuilder
[Serializable]
#if WINFSInternalOnly
internal
#else
public
#endif
sealed class SqlException : System.Data.Common.DbException {
private SqlErrorCollection _errors;
private SqlException(string message, SqlErrorCollection errorCollection) : base(message) {
HResult = HResults.SqlException;
_errors = errorCollection;
}
// runtime will call even if private...
private SqlException(SerializationInfo si, StreamingContext sc) : base(si, sc) {
_errors = (SqlErrorCollection) si.GetValue("Errors", typeof(SqlErrorCollection));
HResult = HResults.SqlException;
}
[System.Security.Permissions.SecurityPermissionAttribute(System.Security.Permissions.SecurityAction.LinkDemand, Flags=System.Security.Permissions.SecurityPermissionFlag.SerializationFormatter)]
override public void GetObjectData(SerializationInfo si, StreamingContext context) {
if (null == si) {
throw new ArgumentNullException("si");
}
si.AddValue("Errors", _errors, typeof(SqlErrorCollection));
base.GetObjectData(si, context);
}
[
DesignerSerializationVisibility(DesignerSerializationVisibility.Content)
]
public SqlErrorCollection Errors {
get {
if (_errors == null) {
_errors = new SqlErrorCollection();
}
return _errors;
}
}
/*virtual protected*/private bool ShouldSerializeErrors() { // MDAC 65548
return ((null != _errors) && (0 < _errors.Count));
}
public byte Class {
get { return this.Errors[0].Class;}
}
public int LineNumber {
get { return this.Errors[0].LineNumber;}
}
public int Number {
get { return this.Errors[0].Number;}
}
public string Procedure {
get { return this.Errors[0].Procedure;}
}
public string Server {
get { return this.Errors[0].Server;}
}
public byte State {
get { return this.Errors[0].State;}
}
override public string Source {
get { return this.Errors[0].Source;}
}
static internal SqlException CreateException(SqlErrorCollection errorCollection, string serverVersion) {
Debug.Assert(null != errorCollection, "no errorCollection?");
// concat all messages together MDAC 65533
StringBuilder message = new StringBuilder();
for (int i = 0; i < errorCollection.Count; i++) {
if (i > 0) {
message.Append(Environment.NewLine);
}
message.Append(errorCollection[i].Message);
}
SqlException exception = new SqlException(message.ToString(), errorCollection);
exception.Data.Add("HelpLink.ProdName", "Microsoft SQL Server");
if (!ADP.IsEmpty(serverVersion)) {
exception.Data.Add("HelpLink.ProdVer", serverVersion);
}
exception.Data.Add("HelpLink.EvtSrc", "MSSQLServer");
exception.Data.Add("HelpLink.EvtID", errorCollection[0].Number.ToString(CultureInfo.InvariantCulture));
exception.Data.Add("HelpLink.BaseHelpUrl", "http://go.microsoft.com/fwlink");
exception.Data.Add("HelpLink.LinkId", "20476");
return exception;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- GatewayDefinition.cs
- MaterialCollection.cs
- XamlBrushSerializer.cs
- WorkflowServiceHost.cs
- ParameterInfo.cs
- TypeRestriction.cs
- Timeline.cs
- EmptyElement.cs
- AuthStoreRoleProvider.cs
- CommonRemoteMemoryBlock.cs
- TimelineGroup.cs
- COM2ExtendedUITypeEditor.cs
- EntitySetDataBindingList.cs
- ValidatingPropertiesEventArgs.cs
- LoadedOrUnloadedOperation.cs
- CellTreeNodeVisitors.cs
- xmlglyphRunInfo.cs
- recordstate.cs
- TableCell.cs
- CompilationLock.cs
- BoolExpressionVisitors.cs
- SwitchElementsCollection.cs
- PartialClassGenerationTaskInternal.cs
- DataGridHyperlinkColumn.cs
- OleTxTransactionInfo.cs
- BinarySerializer.cs
- BulletedList.cs
- OdbcDataAdapter.cs
- columnmapkeybuilder.cs
- ExpressionValueEditor.cs
- SiteMapNodeCollection.cs
- AuthorizationRuleCollection.cs
- CreateUserWizardStep.cs
- Effect.cs
- Util.cs
- TemplateControlBuildProvider.cs
- SplitterPanel.cs
- QueryContinueDragEvent.cs
- XmlSchemaSequence.cs
- XmlSchemaSimpleContentExtension.cs
- DeviceOverridableAttribute.cs
- DeleteIndexBinder.cs
- ValidationSummaryDesigner.cs
- FormatSettings.cs
- PhonemeEventArgs.cs
- PropertyBuilder.cs
- InvalidComObjectException.cs
- SoapHeader.cs
- Stream.cs
- InsufficientMemoryException.cs
- FixedDocument.cs
- CompositeFontFamily.cs
- BindingSource.cs
- NameSpaceExtractor.cs
- HybridDictionary.cs
- DBPropSet.cs
- CopyNodeSetAction.cs
- ListBox.cs
- BitmapEffect.cs
- PublishLicense.cs
- TransactionScope.cs
- ColorConverter.cs
- IPEndPoint.cs
- CapabilitiesSection.cs
- PropertiesTab.cs
- DecimalConstantAttribute.cs
- ContextActivityUtils.cs
- CommandDesigner.cs
- DLinqTableProvider.cs
- ContractMapping.cs
- IIS7ConfigurationLoader.cs
- DesignerHelpers.cs
- RefExpr.cs
- FormatSettings.cs
- ZipIOModeEnforcingStream.cs
- IpcManager.cs
- RegexNode.cs
- SurrogateSelector.cs
- DictionaryBase.cs
- InternalDispatchObject.cs
- AssemblyUtil.cs
- XmlParserContext.cs
- RawAppCommandInputReport.cs
- ScalarOps.cs
- FlowDocumentScrollViewer.cs
- ChtmlTextWriter.cs
- MediaContextNotificationWindow.cs
- BrowserCapabilitiesFactoryBase.cs
- HostProtectionException.cs
- StructuralType.cs
- RequestSecurityTokenForGetBrowserToken.cs
- DataSourceGroupCollection.cs
- LambdaCompiler.ControlFlow.cs
- NumberFunctions.cs
- XmlILStorageConverter.cs
- SecurityTokenProvider.cs
- WebConfigurationHostFileChange.cs
- CollectionChangedEventManager.cs
- ellipse.cs
- DesignRelationCollection.cs