PDA

View Full Version : مشکل کاراکتر space اضافه



orca13
شنبه 19 آذر 1390, 15:53 عصر
سلام
میخوام فرم لاگین بسازم
آقا من یه بانک دارم با دو فیل Username و Password

username -->nvarchar(6)
password -->varchar (6)

به هر طریقی بود پسورد رو با توجه به username وارد شده در آوردم و تو یه متغیر رشته ای ریختم.
جالب بود که مقدار پسورد وارد شده با مقداری که تو بانک بود برابر بود اما عمل لاگین انجام نمیشد. با trace و ... فهمیدم که مثلا اگه کاربر پسود سه کلمه ای انتخاب کنه، بقیه تا 6 کاراکتر space میره تو بانک، واسه همین با اینکه ظاهرا پسورد ها یکی هستند، اما به خاطر اون کاراکتر های space ناخواسته لاگین صورت نمیگیره.
حالا چکار کنم؟

omidquest
شنبه 19 آذر 1390, 17:22 عصر
درست متوجه منظورت نشدم ولي اگر با حذف كردن space مشكلت حل ميشه از دستوره trim استفاده كن

textbox1.text.trim

باعث ميشه تمام space ها حذف بشه

meisam3322
شنبه 19 آذر 1390, 17:38 عصر
دوست عزیز برای فراخوانی محتوای فیلدها از این دستور استفاده کن "ltrim , rtrim" :


select ltrim(rtrim(field) as trimmedField from table

meisam3322
شنبه 19 آذر 1390, 17:44 عصر
دوست عزیز اینجا رو هم یه نگاهی بنداز (http://forum.ecl4u.com/default.aspx?g=posts&t=33108)

orca13
شنبه 19 آذر 1390, 20:04 عصر
حل شد، مرسی

hakan648
شنبه 19 آذر 1390, 22:56 عصر
سلام
بنده چون با پاسخ های دوستان موافق نبودم این پست رو ارسال میکنم .
مشکل شما در ارسال مقادیر از برنامه به دیتایس هستید .
برای ارسال مقادیر ( مثلا TextBox ) باید از متد AddWithValue استفاده کنید !! ( احتمالا شما به اشتباه نوع و طول رشته را تعیین کردید )
این لینک توضیحی مختصر و مفید داره :
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparametercollection.addwi thvalue.aspx

موفق باشید ...

Mani_rf
یک شنبه 20 آذر 1390, 19:59 عصر
دوست عزیز بهتر است که در هنگام خواندن اطلاعات از دیتابیس از همان تابع Trim که دوستان گفتن استفاده کنید؛ البته در کد SQL نه در خود برنامه. هرچند که اگر نوع داده ای که برای فیلد ها انتخاب کرده این از نوع NvarChar باشد دیگر نیازی به این کار ندارید اما چون نام کاربری و رمز عبور از بخش های حساس برنامه به شمار می رود بهتر است که هم در هنگام ذخیره سازی و هم هنگام فراخوانی این فیلد ها را درون تابع Trim قرار دهید.

موفق باشید

orca13
یک شنبه 20 آذر 1390, 21:21 عصر
دوست عزیز بهتر است که در هنگام خواندن اطلاعات از دیتابیس از همان تابع Trim که دوستان گفتن استفاده کنید؛ البته در کد SQL نه در خود برنامه. هرچند که اگر نوع داده ای که برای فیلد ها انتخاب کرده این از نوع NvarChar باشد دیگر نیازی به این کار ندارید اما چون نام کاربری و رمز عبور از بخش های حساس برنامه به شمار می رود بهتر است که هم در هنگام ذخیره سازی و هم هنگام فراخوانی این فیلد ها را درون تابع Trim قرار دهید.

موفق باشید

البته من با همون Trim مشکلم حل شد. ولی نوع فیلد nvarchar هستش. حالا یعنی شما دوستان میگید که موقع ارسال به دیتابیس پسورد همراه با کارکتر space میره یا خود sql server این space هارو اضافه میکنه؟