Cuestión : Nombre de columna inválido “[email protected]

Lo que sigue es un procedimiento almacenado que estoy llamando. Esto se llama de una página de la búsqueda donde se especifica los criterios y entonces el objeto del ****** del
GO
/de submitted.

USE [dbOIT]:  StoredProcedure [dbo]. Fecha de la escritura [de SearchResults]: 08/23/2010 18:22: 25 PROCEDIMIENTO del ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER [dbo].
,
, (50)
, @EquipID del @Tag del

[de SearchResults] (100) del @Email (120) nvarchar (4)
, @Platform nvarchar (4)
, @OS nvarchar (4)

AS
BEGIN
SET NOCOUNT ENCENDIDO; Br nvarchar/> del

SELECT @sql1='< del

DECLARE @sql1 (los 4000) SELECCIONAN el
a.AssetID, a.AssetTag, a.OSId, a.ModelID, a.EquipmentTypeID, a.PlatformID, a.EmailAddress, a.SerialNumber
, p.PlatformName, e.EquipmentType, m.ModelName
, ltrim (rtrim (a.HDD)) como HDD, ltrim (rtrim (a.RAM)) como RAM, o.OperatingSystem
del dbo. Los activos que el a
ENSAMBLA dbo.EquipmentTypes e CON (NOLOCK) en e.EquipmentTypeID=a.EquipmentTypeID
ENSAMBLAN dbo. Las plataformas p CON (NOLOCK) en
ENSAMBLAN dbo. Los modelos m CON (NOLOCK) en
ENSAMBLAN dbo.OperatingSystems o CON (NOLOCK) en el
de o.OSId=a.OSId donde 1=1'< el
del Br/> SI el @Tag NO ES NULL
SELECTO @sql1 = @sql1 + “Y a.AssetTag =” + el
del @Tag
SI el @Email NO ES NULL
SELECTO @sql1 = @sql1 + “Y a.EmailAddress =” + @Email + ““el “
del
SI es @Serial NO ES NULL
@sql1 SELECTO = @sql1 +” Y a.SerialNumber =” + el
SI el @EquipID NO ES NULL
SELECTO @sql1 = @sql1 + “Y a.EquipmentTypeID del @Serial
=” + el
SI el @Platform NO ES NULL
SELECTO @sql1 = @sql1 + “Y a.PlatformID del @EquipID
=” + el @Platform

SI el @OS NO ES NULL
SELECTO @sql1 = @sql1 + “Y a.OSId =” + el
END

Here del
EXEC (@sql1) del @OS
es la partición extraña. Puedo pasar el sistema operativo, la plataforma, el tipo de equipo, y la etiqueta del activo con éxito total. Sin embargo, cuando paso email address o cuento por entregas #, consigo el siguiente: Br/>


Description de [email protected]'< del nombre de columna del

Invalid ': Una excepción unhandled ocurrió durante la ejecución de la petición actual de la tela. Repasar por favor el rastro de apilado para más información sobre el error y donde originó en los detalles de code.

Exception: System.Data.SqlClient.SqlException: Nombre de columna inválido “[email protected]”. error del

Source: la excepción unhandled/>An del


Stack:

[SqlException (0x80131904): Nombre de columna inválido “[email protected]”.
System.Data.SqlClient.SqlConnection.OnError (excepción de SqlException, breakConnection boleano) del ] +1951450
System.Data.SqlClient.SqlInternalConnection. OnError (excepción de SqlException, breakConnection boleano) +4849003
System.Data.SqlClient.TdsParser. ThrowExceptionAndWarning (stateObj) de TdsParserStateObject +194
System.Data.SqlClient.TdsParser. Funcionar (runBehavior del RunBehavior, cmdHandler de SqlCommand, dataStream de SqlDataReader, bulkCopyHandler de BulkCopySimpleResultSet, stateObj de TdsParserStateObject) +2394
System.Data.SqlClient.SqlDataReader.ConsumeMetaData () +33
System.Data.SqlClient.SqlDataReader.get_MetaData () +83
System.Data.SqlClient.SqlCommand. FinishExecuteReader (runBehavior de SqlDataReader ds, de RunBehavior, secuencia resetOptionsString) +297
System.Data.SqlClient.SqlCommand. RunExecuteReaderTds (CommandBehavior cmdBehavior, runBehavior de RunBehavior, returnStream boleano, async boleano) +954
System.Data.SqlClient.SqlCommand. RunExecuteReader (cmdBehavior de CommandBehavior, runBehavior de RunBehavior, returnStream boleano, método de la secuencia, resultado de DbAsyncResult) +162
System.Data.SqlClient.SqlCommand. RunExecuteReader (cmdBehavior de CommandBehavior, runBehavior de RunBehavior, returnStream boleano, método de la secuencia) +32
System.Data.SqlClient.SqlCommand. ExecuteReader (comportamiento de CommandBehavior, método de la secuencia) +141
System.Data.SqlClient.SqlCommand. ExecuteDbDataReader (comportamiento) de CommandBehavior +12
System.Data.Common.DbCommand. System.Data.IDbCommand. ExecuteReader (comportamiento) del CommandBehavior +10
System.Data.Common.DbDataAdapter. FillInternal (grupo de datos del DataSet, DataTable [] los datatables, Int32 startRecord, maxRecords Int32, encadenan comando srcTable, de IDbCommand, el comportamiento) de CommandBehavior +130
System.Data.Common.DbDataAdapter. Fill (el grupo de datos del grupo de datos, Int32 el startRecord, maxRecords Int32, encadena comando srcTable, de IDbCommand, el comportamiento de CommandBehavior) +287
System.Data.Common.DbDataAdapter. Fill (el grupo de datos del grupo de datos, encadena srcTable) +92
System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect (discusiones) de DataSourceSelectArguments +1297
System.Web.UI.DataSourceView. Seleccionar (discusiones del DataSourceSelectArguments, servicio repetido de DataSourceViewSelectCallback) +19
System.Web.UI.WebControls.DataBoundControl. PerformSelect () +142
System.Web.UI.WebControls.BaseDataBoundControl.DataBind () +73
System.Web.UI.WebControls.GridView.DataBind () +4
System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound () +82
System.Web.UI.WebControls.CompositeDataBoundControl. ¿Idea de CreateChildControls () +72
System.Web.UI.Control.EnsureChildControls () +87
System.Web.UI.Control.PreRenderRecursiveInternal () +44
System.Web.UI.Control.PreRenderRecursiveInternal () +171
System.Web.UI.Control.PreRenderRecursiveInternal () +171
System.Web.UI.Control.PreRenderRecursiveInternal () +171
System.Web.UI.Control.PreRenderRecursiveInternal () +171
System.Web.UI.Page.ProcessRequestMain (includeStagesBeforeAsyncPoint, includeStagesAfterAsyncPoint) +842



Any qué está saliendo mal aquí?
class= del

Respuesta : Nombre de columna inválido “[email protected]

Signifiqué el below (corrección).
Usted necesita cotizarla porque es (n) (var) un carbón de leña
1:
            SELECCIONAR @sql1 = @sql1 + “Y a.EmailAddress =” + QuoteName (@Email, el '''') + ''
Otras soluciones  
 
programming4us programming4us