PDA

نسخه کامل مشاهده نسخه کامل : رکورد تکراری



MohammadJavad.T
04-10-2007, 06:05
سلام
یه سوال داشتم اگه راهنمای کنید یه دنیا ممنون میشم
من از بانک اکسس برا نگهداری داده هام استفاده میکنم ولی به یه مشکل برخوردم که حسابی کلافم کرده
روال کار به این شکل که یه مقدار رو داخل textbox1 از فیلد اول مینویسم و تویه textbox2 یه مقدار دیگه از فیلد دوم
به من میده. ولی اگه اون مفداری رو که تو textbox1 مینویسم تکراری باشه .
فیلد دوم .............. فیلداول
Ali .................. rezay
Ali ................ taghavi
Reza ................. tavakoli

فقط rezay رو تو textbox2 به هم میده
از این دستور SQL استفاده میکنم

Select family From tbTest Where esm =family

حالا کاری نمیشه کرد که مثلا اگه ali رو نوشت و داخلtextbox2
rezay,taghavy با هم بیان

_H2_
04-10-2007, 10:19
سلام
پیشنهاد میکنم از DataReader استفاده کنید و خودتان دستی DataReader را تا آخر بخوانید و برای هر آیتم، آیتم مورد نظر را به ته String تان اضافه کنید.
شاید بتوان کد کاملی که همه شرایط را لحاظ میکند اینطور تصور کرد.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
البته در عمل و مثلاً در داخل یک رویه به راحتی میتوان سطوح تو رفتگی را کم کرد ولی حذف دستورات IF که شرایط غیر مجاز را ف.ی.ل.ت.ر میکنند جایز نیست و موجب ضعف کد در مواقع حساس میشود.

MohammadJavad.T
06-10-2007, 03:13
سلام دوست عزیز
مثل همیشه فعال ایول ممنون از کد و توضیحات

hannibalLecter
07-10-2007, 18:51
سلام
به نظر من اصلا از DataReader استفاده نکن و سعی کن همیشه از DataSet استفاده کنید .

بابت اون سوال شما هم باید بگم که دستور Select شما مورد داره چون فقط یک فیلد رو صدا زدی .

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])

MohammadJavad.T
08-10-2007, 07:59
سلام
به نظر من اصلا از DataReader استفاده نکن و سعی کن همیشه از DataSet استفاده کنید .

بابت اون سوال شما هم باید بگم که دستور Select شما مورد داره چون فقط یک فیلد رو صدا زدی .

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])

سلام
من داده هام رو نمیخوام دستکری کنم . فکرنکنم نیاز باشه از dataset استفاده کنم
چون من فقط به همون فیلد نیاز دارم اگه فیلد دیگه ای رو صدا کنم که فیلد اول هم به نمایش در میاد

najafzade
08-10-2007, 08:51
سلام
یه سوال داشتم اگه راهنمای کنید یه دنیا ممنون میشم
من از بانک اکسس برا نگهداری داده هام استفاده میکنم ولی به یه مشکل برخوردم که حسابی کلافم کرده
روال کار به این شکل که یه مقدار رو داخل textbox1 از فیلد اول مینویسم و تویه textbox2 یه مقدار دیگه از فیلد دوم
به من میده. ولی اگه اون مفداری رو که تو textbox1 مینویسم تکراری باشه .
فیلد دوم .............. فیلداول
Ali .................. rezay
Ali ................ taghavi
Reza ................. tavakoli

فقط rezay رو تو textbox2 به هم میده
از این دستور SQL استفاده میکنم

Select family From tbTest Where esm =family

حالا کاری نمیشه کرد که مثلا اگه ali رو نوشت و داخلtextbox2
rezay,taghavy با هم بیان

میتونی از دستور findnext و یا f-i-l-t-e-r هم استفاده نمائید.

_H2_
08-10-2007, 15:15
سلام


به نظر من اصلا از DataReader استفاده نکن و سعی کن همیشه از DataSet استفاده کنید .

نظر من کاملاً عکس است! :31:
تا جایی که جا دارد و برنامه اجازه میدهد از DataSet فرار کنید! البته اگر سرعت اجرای برنامه برایتان مهم است و گرنه بهتر است در زمان فروش برنامه یک دست لحاف و دوشک هم اشانتیون به مشتری بدهید تا .... ! :31::10:

shalineh
14-10-2007, 19:43
سلام
به نظر من اصلا از DataReader استفاده نکن و سعی کن همیشه از DataSet استفاده کنید .

بابت اون سوال شما هم باید بگم که دستور Select شما مورد داره چون فقط یک فیلد رو صدا زدی .

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])

با شما موافقم. واقعا سرعت دیتا ریدر کمه. در ضمن برای جستجو در دیتا بیس حتما از دستورات Sql استفاده کنید و از کنترلهای آماده استفاده نکنید که واقعا سرعتشون در حد بسیار پایینی هست. ( البته در دیتابیسهای بزرگ منظورمه ).

_H2_
15-10-2007, 10:25
سلام

... واقعا سرعت دیتا ریدر کمه...
مطمئن هستید اشتباه تایپی ندارید!!!!!

hannibalLecter
20-10-2007, 19:12
سلام

مطمئن هستید اشتباه تایپی ندارید!!!!!



بايد متاسفانه بگم كه شما اصلا برنامه نويس نيستي عزيزه من چون اگه بودي ميدونستي كه همه دارن از DataSet استفاده ميكنن و سرعت اون خيلي بالايه و داراي قابليت هاي فراواني است .



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

_H2_
22-10-2007, 10:19
سلام
عزیز دل بابا نمیخواهم کل کل کنم.
ولی سرعت DataSet فقط در RAM بالاست یعنی بعد از بارگذاری از بانک.
ولی در زمان بارگذاری و ذخیره سازی به شدت کند است و از سنگینترین و کندترین اشیای موجود در دات نت است به طوری که قویاً توسیه شده در طراحی سایت تحت وب که نیاز به پردازش همزمان حداقل صدها کاربر دارد، به هیچ وجه در کد صفحات از این شی استفاده نشود چون منابع سرور را به شدت تضعیف خواهد کرد.

اگر سورس کد مربوط به DataAdpter را که DataSet را بارگذاری و ذخیره میکند میدید هیچ گاه همچین جملاتی نمیگفتید!

همین الآن سورس جلوی من است کمی برایتان توضیح میدهم....
- اول کلی چک کردن شرایط نا معتبر داریم و کد اعلام خطا برای شرایط فوق ....
- در صورت نیاز ساخت جدول جدید .....
- خواندن Schema رکوردهای بازگشتی از شی SelectCommand ..... به کمک شی DataReader !!....
- یک سری دستورات خفن که طبق Schema بازگشتی از DataReader و با کگلی محاسبات ساخت جدول جدید مطابق Schema در DataSet !!..... کد فوق العاده زیاد ...
- پر کردن جدول جدید به کمک یک DataReader درون حلقه While
خود پر کردن درون حلقه حکایتی وحشتنات دارد، از کدهای عادی داخل حلقه که بگذریم به تابعی میرسیم که به ازای هر سطر اجرا میشود و عمل Mapping بین DataReader و DataTable درون DataSet انجام میدهد ....
که همین برای کار خود یک برنامه دیگری است و کلی شرایط غیر مجاز و... را چک میکند تا ریسمان را تحویل map دهد ....

- تازه از کدهای پر کردن و خواندن DataReader که بگذریم کدهای بسیار دیگری در سوی دیگر در داخل مدیر Collection داخلی DataRow برای نگه داری سطرها و اضافه شدن سطر جدید به لیست پیوندی و... اجرا میشود ....


فقط میتوانم بگویم سر من از دیدن کدها درد میگیرید .....
شما مطمئن هستید که شی ای که خود به کرات در زمان پر شدنش از DataReader استفاده میکند، سریعتر از DataReader است ؟؟؟؟؟؟

DataReader از اشیا بسیار بسیار سبک و فوق العاده سریع موجود در دات نت است که تا حدودی بسیاری شبیه RecordSet های ADO قدیم است در حالی که به علت ReadOnly بودنش میتواند تمام بهینه سازی های ممکن را پیاده سازی کند.

بهرحال وقت چانه زدن با شما و راضی کردنتان را هم ندارم و اصولاً اگر از جنبه کمکش بگذریم، برایم چندان مهم هم نیست، اگر حرفم را قبول ندارید و راضی نشدید، باشه مشکل نداره، هر کی میخواهد از DataSet استفاده کند و پیرمردهای غیر برنامه نویسی مثل من هم تا جایی که بتوانیم از DataReader مان استفاده میکنیم و فقط در جایی که واقعاً لازم داریم به DataSet سوییچ میکنیم.

عزیز دل بابا! عیسی به دین خود، موسی به دین خود !.... :31::10: