PDA

View Full Version : سوال: اطلاعات پس از ثبت در بانک، بازیابی نمی شود



ranghinkamoon
یک شنبه 14 شهریور 1389, 22:27 عصر
سلام

یه برنامه ASP با زبان سی شارپ دارم که وقتی از طریق برنامه فیلد مثلا(نام ونام خانوادگی ) را در داخل SQL Server 2005 ثبت می کنم ٰ ثبت می شود اما وقتی یک Query جستجو می زنم تا اون نام و نام خانوادگی را رکوردش را بدهد چیزی پیدا نمی کنه . از nvarchar(50) استفاذه کردم و Collation آن را هم Arabic گذاشتم اما جواب نمی ده .

rezvan.j
دوشنبه 15 شهریور 1389, 00:17 صبح
گاهی ممکنه مشکله ساده ای پیش اومده باشه
اگه دقیقا توی کوئری می نویسید که مقدار فیلد = مقدار مثلا تکست باشه ، می تونه این وسط یه سری فضاهای خالی خودش اضافه شده باشه . ( البته فقط یه امکان کوچیکه )

هنگام درج رکورد ها حتما از trim استفاده کنید .
برای بازیابی هم میتونید از like استفاده کنید .


----

من همچین مشکلی داشتم اونم به این طریق بود که همون nvarchar 50 تعریف کرده بودم ولی کوئری رو توی storedProcedure نوشته بودم که داخل storedProcedure هم حتما باید برای فیلد محدوده رو تعیین می کردم که همین باعث میشد جواب نده . (همون تعداد کراکتر ها )

ranghinkamoon
دوشنبه 15 شهریور 1389, 00:38 صبح
از Trim و Like هم استفاده کرده بودم اما فایده ای نداشت ،

kashaneh
دوشنبه 15 شهریور 1389, 08:08 صبح
دوست عزیز اگر اسامی فارسی هستند حتما قبل از جستجو N را اضافه کنید... جهت کسب اطلاعات بیشتر به انجمن SQL مراجعه کنید...

موفق باشی

ASPX
دوشنبه 15 شهریور 1389, 08:35 صبح
SELECT * FROM table WHERE fields=N'value'

اوبالیت به بو
دوشنبه 15 شهریور 1389, 09:17 صبح
دوست عزیز اگر اسامی فارسی هستند حتما قبل از جستجو N را اضافه کنید... جهت کسب اطلاعات بیشتر به انجمن SQL مراجعه کنید...

موفق باشی
سلام
N يعني NvarChar؟ چه تاثيري رو دستور مي گذاره؟

mehdi.mousavi
دوشنبه 15 شهریور 1389, 09:57 صبح
سلام N يعني NvarChar؟ چه تاثيري رو دستور مي گذاره؟

سلام.
بله، N (که یه Literal توی SQL هستش) به معنای NCHAR و NVARCHAR هستش. یعنی رشته مورد نظر رو Unicode درنظر بگیر و نه ASCII. درسته همون کاری که W در C++ انجام میده (اونجا W یعنی Wide Char که همون Unicode هستش).

موفق باشید.