J'ai une table UserTable avec un nom de champ varchar (20). J'ai un écran d'édition qui a la liaison de données mis en place pour lier à UserTable.name. Le problème est que lorsque je l'édite, le champ a la valeur suivie par des espaces jusqu'à une longueur de 20. En conséquence, l'utilisateur entre dans le champ et essaie, par exemple, d'ajouter un s à la fin de son nom , l'interface utilisateur se plaint car le champ est déjà plein. Comment puis-je obtenir la base de données pour ne pas ajouter ces espaces supplémentaires.SQL C# Interface - Données de chargement SQL remplies d'espaces supplémentaires
Voici le code pour créer la table:
CREATE TABLE [dbo].[US_usertable](
[user_name] [varchar](20) NOT NULL,
[password] [varchar](100) NOT NULL,
[departmentID] [int] NOT NULL,
[employeeID] [int] IDENTITY(1,1) NOT NULL,
[emailaddress] [nchar](30) NULL,
CONSTRAINT [PK_US_usertable] PRIMARY KEY CLUSTERED
(
[employeeID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Voici la requête dans l'adaptateur de table:
SELECT emailaddress, employeeID, departmentID, user_name, password FROM us_usertable WHERE (employeeID = @empID)
Une façon serait de "découper" les résultats. Votre solution dépend de la technologie utilisée pour lier. Recherchez des exemples sur le Web. ASP.NET a une solution - en utilisant Entity Framework ou nHibernate a une solution différente. Une manière rapide et sale (et qui ne convient pas pour le code de production) est de rtrim juste dans l'instruction SQL - ceci ajoute un surcoût d'E/S à la requête mais cela va "se faire". – ripvlan
Bizarre c'est habituellement le comportement des colonnes char (taille) pas varchar (taille) celles – Steve
C'est le 'nchar' que vous rencontrez des problèmes, oui? Essayez un 'nvarchar' à la place. –