Question : Nom de colonne inadmissible « [email protected] »

Ce qui suit est un procédé stocké que j'appelle. Ceci s'appelle d'une page de recherche où des critères est spécifiés et puis l'objet de ****** du
GO
/de submitted.

USE [dbOIT] :  StoredProcedure [dbo]. [Date de manuscrit de SearchResults] : 08/23/2010 18h22 : 25 PROCÉDÉ du ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER [dbo]. [
,
, (50)
, @EquipID de @Tag du

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

AS
BEGIN
SET NOCOUNT DESSUS ; Br nvarchar/> du

SELECT @sql1='< du

DECLARE @sql1 (les 4000) CHOISISSENT le
a.AssetID, a.AssetTag, a.OSId, a.ModelID, a.EquipmentTypeID, le a.PlatformID, a.EmailAddress, a.SerialNumber
, p.PlatformName, e.EquipmentType, m.ModelName
, ltrim (rtrim (a.HDD)) comme HDD, ltrim (rtrim (a.RAM)) comme RAM, o.OperatingSystem
de dbo. Les capitaux que l'a
JOIGNENT dbo.EquipmentTypes e AVEC (NOLOCK) sur e.EquipmentTypeID=a.EquipmentTypeID
JOIGNENT le dbo. Les plates-formes p AVEC (NOLOCK) sur le
JOIGNENT le dbo. Les modèles m AVEC (NOLOCK) sur le
JOIGNENT dbo.OperatingSystems o AVEC (NOLOCK) sur le
d'o.OSId=a.OSId où 1=1'< le
du Br/> SI le @Tag N'EST PAS NULL
CHOISI @sql1 = @sql1 + « ET a.AssetTag = » + le
du @Tag
SI le @Email N'EST PAS NULL
CHOISI @sql1 = @sql1 + « ET a.EmailAddress = » + @Email + « « le « 
du
SI @Serial N'EST PAS NULL
@sql1 CHOISI = @sql1 + » ET a.SerialNumber = » + le
SI le @EquipID N'EST PAS NULL
CHOISI @sql1 = @sql1 + « ET a.EquipmentTypeID du @Serial
= » + le
SI le @Platform N'EST PAS NULL
CHOISI @sql1 = @sql1 + « ET a.PlatformID du @EquipID
= » + le @Platform

SI le @OS N'EST PAS NULL
CHOISI @sql1 = @sql1 + « ET a.OSId = » + le
END

Here du
EXEC (@sql1) du @OS
est la cloison étrange. Je peux passer du système d'exploitation, la plate-forme, le type d'équipement, et l'étiquette de capitaux avec le succès total. Cependant, quand je passe l'email address ou la publication périodique #, j'obtiens ce qui suit : Br/>


Description de [email protected]'< de nom de colonne du

Invalid ': Une exception unhandled s'est produite pendant l'exécution de la demande courante de Web. Veuillez passer en revue la trace de pile pour plus d'informations sur l'erreur et où elle a provenu des détails de code.

Exception : System.Data.SqlClient.SqlException : Nom de colonne inadmissible « [email protected] ». erreur du

Source : l'exception unhandled par/>An du


Stack :

[SqlException (0x80131904) : Nom de colonne inadmissible « [email protected] ».
System.Data.SqlClient.SqlConnection.OnError (exception de SqlException, breakConnection booléen) du ] +1951450
System.Data.SqlClient.SqlInternalConnection. OnError (exception de SqlException, breakConnection booléen) +4849003
System.Data.SqlClient.TdsParser. ThrowExceptionAndWarning (stateObj de TdsParserStateObject) +194
System.Data.SqlClient.TdsParser. Courir (runBehavior de 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, corde resetOptionsString) +297
System.Data.SqlClient.SqlCommand. RunExecuteReaderTds (CommandBehavior cmdBehavior, runBehavior de RunBehavior, returnStream booléen, async booléen) +954
System.Data.SqlClient.SqlCommand. RunExecuteReader (cmdBehavior de CommandBehavior, runBehavior de RunBehavior, returnStream booléen, méthode de corde, résultat de DbAsyncResult) +162
System.Data.SqlClient.SqlCommand. RunExecuteReader (cmdBehavior de CommandBehavior, runBehavior de RunBehavior, returnStream booléen, méthode de corde) +32
System.Data.SqlClient.SqlCommand. ExecuteReader (comportement de CommandBehavior, méthode de corde) +141
System.Data.SqlClient.SqlCommand. ExecuteDbDataReader (comportement de CommandBehavior) +12
System.Data.Common.DbCommand. System.Data.IDbCommand. ExecuteReader (comportement de CommandBehavior) +10
System.Data.Common.DbDataAdapter. FillInternal (ensemble de données de DataSet, DataTable [] les datatables, Int32 le startRecord, les maxRecords Int32, ficellent la commande srcTable, d'IDbCommand, le comportement de CommandBehavior) +130
System.Data.Common.DbDataAdapter. Fill (l'ensemble de données d'ensemble de données, Int32 le startRecord, les maxRecords Int32, ficellent la commande srcTable, d'IDbCommand, le comportement de CommandBehavior) +287
System.Data.Common.DbDataAdapter. Fill (l'ensemble de données d'ensemble de données, ficellent srcTable) +92
System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect (arguments de DataSourceSelectArguments) +1297
System.Web.UI.DataSourceView. Choisir (arguments de DataSourceSelectArguments, rappel de service 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. Idée 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 ce qui va mal ici ?
class= de

Réponse : Nom de colonne inadmissible « [email protected] »

J'ai voulu dire le ci-dessous (correction).
Vous devez la citer parce que c'est (n) (variété) un char
1 :
            CHOISIR @sql1 = @sql1 + « ET a.EmailAddress = » + QuoteName (@Email, '''') + ''
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us