フィールドUserNameにvarchar(20)という名前のテーブルUserTableがあります。 UserTable.nameにバインドするようにデータバインディングを設定した編集画面があります。問題は、私がそれを編集しているときに、フィールドの長さが最大20のスペースの後に値があることです。その結果、ユーザーはフィールドを入力し、たとえば、名前の末尾にsを追加しようとします、フィールドが既にいっぱいになっているため、ユーザーインターフェイスに不満があります。これらの余分なスペースをデータベースに追加しないようにするにはどうすればよいですか。ここでSQL C#インターフェイス - 余分なスペースで埋め込まれたSQL読み込みデータ
は、テーブルを作成するためのコードです:ここでは
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]
は、テーブルアダプタでのクエリです:Visual Studioで
SELECT emailaddress, employeeID, departmentID, user_name, password FROM us_usertable WHERE (employeeID = @empID)
1つの方法は、結果を「トリム」することです。ソリューションは、バインドに使用されているテクノロジによって異なります。 Webで例を検索します。 ASP.NETには、Entity FrameworkまたはnHibernateを使用するソリューションがあります。素早く汚れた方法(そしてプロダクションコードには適していません)は、SQL文の中でrtrimを正しく実行することです。これにより、I/Oオーバーヘッドがクエリに追加されますが、これは "完了"します。 – ripvlan
これはuscharally char(size)カラムの動作はvarchar(size)のものではありません – Steve
これはあなたが問題を抱えている 'nchar'ですか?代わりに 'nvarchar'を試してください。 –