View Full Version : کنترل تکراری بودن مقادیر نوشتاری
Mishtolak
یک شنبه 12 تیر 1390, 08:59 صبح
با سلام
فرض کنید من نیاز دارم لیست رکوردهایی که مقدار فیلد FName اونها مثلا برابر "علی رضا" هست رو برای کنترل تکراری بودن مقدار کنترل کنم. میخواستم بدونم روش یا روش های مناسب و معمول برای اینکار چیه؟
احتمالا یک موردش باید کنترل تکراری بودن عبارات پس از حذف اسپیس ها باشه. (در این مورد اگه در خصوص کد لازم راهنمایی کنید ممنون میشم)
Kubuntu
یک شنبه 12 تیر 1390, 10:15 صبح
اگه از زبان سی شارپ استفاده می کنی، با استفاده از rowFilter میشه تکراری ها رو پیدا کرد، فقط باید شرط بذاری که اونم مثل شرطیه که جلوی where می نویسی.
DataView Dv= new DataView(Ds.Tables("نام جدول"));
Dv.RowFilter= " نام فیلد In {'علیرضا' , 'علی رضا'}";
**Ds همون شی dataset است که قبلا ساختی
اگه می خوای پروسجر یا پرس و جو بنویسی:
SELECT * FROM TableName
WHERE fieldName In {'علیرضا' , 'علی رضا'}
از like هم می تونی تو شرطتت استفاده کنی.
موفق باشی
Mishtolak
یک شنبه 12 تیر 1390, 14:51 عصر
ضمن تشکر از شما دوست عزیز
من میبایست در دیتابیس (sp) اینکار رو انجام بدم .
عبارت علیرضا رو هم بعنوان مثال گفتم و عملا به دستوری نیاز دارم که یک عبارت رشته ای بگیره و اسپیس های اونو حذف کنه.
Kubuntu
یک شنبه 12 تیر 1390, 23:08 عصر
دستورات sql محدوده و چیزی که می خوای را باید از زبان برنامه نویسیت کمک بگیری. مثل مثالی که در بالا به زبان سی شارپ نوشتم. فقط شما با like باید بنویسی. (بهترین راه حل)
اگه پروسجرش می تونست بصورت زیر باشه خیلی خوب بود: (ولی خب نمی شه دیگه! چون پارامتری که از ورودی میگیری رو نمی تونی جزئیاتش رو ببینی)
CREATE PROCEDURE sample
(@name navrchar(15))
AS
UPDATE (SELECT * FROM [tbl1] WHERE fname LIKE @name )
SET fname= 'Ali Reza'
راه حل دوم: وقتی از ورودی می گیری قبل اینکه بریزی توی پایگاه، فاصله های اضافی رو بردار.
*** دیگه چیزی به ذهنم نمی رسه. :لبخندساده:
موفق باشی
saghari
دوشنبه 13 تیر 1390, 08:12 صبح
سلام
براي حذف اسپيس تو رشته از دستور replace استفاده كن.
Replace(رشته يا متغير حاوي رشته, ' ', '')
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.