PDA

نسخه کامل مشاهده نسخه کامل : SPInsert



shotok
15-04-2011, 18:31
با سلام
من برای ذخیره کردن رکورد از یک رویه ذخیره شده استفاده کردم. متوجه شدم که به ازای تک تک فیلدها باید یک پارامتر بفرستم. در ضمن من به ازای هر جدول در پایگاه داده یک کلاس طراحی کردم و تمام اتربیوت ها و متدها را برای هر کدام تعریف کردم.

حالا سوال من این است که اگه قرار بود برای هر کدام از فیلدها پارامتر با نوع و اندازه تعریف کنم پس کاربرد اتربیوت هایی که در کلاس تعیین کردم چه می شود؟


sqlCommand sqlCmd;
sqlcmd.commandType=CommandType.storedProcedure;
sqlParameter param=sqlCmd.Parameters.add("@id_send");//تعریف پارامتر
param.value=this.id_send;//استفاده از اتربیوت کلاس

من در تعریف پارامتر از ذکر نوع و اندازه صرفه نظر کردم.

دوستان بفرمائید راهی وجود دارد که من از پارامتر استفاده نکنم و مستقیما از اتربیوت های کلاس استفاده کنم؟چون منطقی به نظر نمیرسه که با تغییر پایگاه داده هم پارامترها را تغییر بدم و هم اتربیوتهای کلاس را!!!

در ضمن زبان برنامه نویسی سی شارپ و ویژوال استودیو 2008
:11:

_H2_
15-04-2011, 19:54
سلام
من منظورتان را از Attrribute ها و ارتباط انها با مسئله ای که مطرح کردید متوجه نمیشوم.
در کل پایه ارتباط دات نت با دیتابیس تعریف Connection و Command و DataReader و اضافه کردن تک تک پارامترها به همان سختی است که شااره کردید!!!

ولی دات نت سه لایه مختلف ارتباط با دیتابیس روی این روش پایه کشیده تا ارتباط با دیتابیس را هرچه بیشتر ساده کند.
- روش اول استفاده از DataSet و DataAdapter است.
این قدیمی ترین روش است و تنها روشی است که در Framework2 پشتیبانی شده.

- روش دوم LINQ to SQL است.
روش بسیار ساده و روانی است ولی برای کارهای خاص و پیچیده جواب نمیدهد و فقط هم مختص ارتباط با SQL Server است.

- روش سوم Entity Data Model است.
در حال حاضر بیشتر مورد توجه برنامه نویسان قرار گرفته.

==============

این سه روش با ساده ترین شکل ممکن و اغلب حتی با یک گرفتن-کشیدن-رهاکردن ارتباط و اشیای لازم را تشکیل میدهند و به راحتی در کد قابل استفاده هستند.

پیشنهاد میکنم برای ساده و کاهش سرعت تولید از یکی از سه ابزار فوق استفاده کنید.
ولی با وجود سادگی همچنان سه ابزار فوق تنظیمات و ریزه کاری های خودش را برای کارهای خاص دارند و فقط امتحان کردن کد کافی نخواهد بود.
متاسفانه فرصت کافی برای توضیح این ابزار هم وجود ندارد و در نهایت هم توضیح آنها کتابی خواهد شد ...

پس چه بهتر کتاب چاپ جدیدی با عنوان ADO.Net تهیه کنید (که ناشرهای مختلف با این عنوان چاپ داشتند) تهیه کنید و ضمن مطالعه عملاً کار با انها را تجربه کنید.
موفق باشید.

shotok
16-04-2011, 12:05
سلام
من منظورتان را از Attrribute ها و ارتباط انها با مسئله ای که مطرح کردید متوجه نمیشوم.

استاد از اینکه وقت گذاشتید سپاسگزارم

همان طور که خدمتتان عرض کردم با توجه به مباحث شی گرایی من به ازای هر جدول در پایگاه داده یک کلاس در aspدر نظر گرفتم و به ازای هر فیلد یک property.
در تعریف property ها نوع آنرا تعریف کردم. حالا قرار شده از این کلاس به عنوان واسط بین فرم و پایگاه داده استفاده کنم یعنی اگر قرار است که چیزی از فرم در پایگاه داده درج کنم مقادیر property های متناظر را مقداردهی کرده و آنها را پاس دهم.
حالا سوال من این است که ado.net باید راه کاری در نظر گرفته باشد که من برای پاس دادن پارامترها بتوانم از property های متناظر استفاده کنم و نیازی به تعریف مجدد Parameter نداشته باشم.

من نگران اینم که شاید یا من مفاهیم پایه ای شی گرایی را نفهمیده باشم و یا ADO.NET را؟؟؟:18:

_H2_
17-04-2011, 21:48
سلام


حالا سوال من این است که ado.net باید راه کاری در نظر گرفته باشد که من برای پاس دادن پارامترها بتوانم از property های متناظر استفاده کنم و نیازی به تعریف مجدد Parameter نداشته باشم.

بله این راه وجود دارد!
همانطور که گفتم نامش LINQ to SQL و Entity Data Model است!
این ابزار پا را در راحتی شما فراتر هم گذاشته، چطور؟
شما فرمودید که کلاسهایی با Property متناظر هر فیلد و... درست کردید؟
شما فقط کافیست یک شی متناظر LINQ to SQL یا Entity Data Model به پروژه خود اضافه کنید و بعد با چند کلیک ساده خود دات نت کلاسی با Property هایی متناظر هر فیلد و واحدهای ساختمانی ارتباطی و... تشکیل میدهد، حتی شما حتی نیازی به تعریف آن کلاس را هم نخواهید داشت.
در حاضر حاضر کمی کار دارم ... :11: شما یک امتحان و کوششی بفرمائید، (Project->Add New Item) اگر به نتیجه نرسیدید، برایتان یک نمونه ساده ارتباط با دیتابیس با سه لایه فوق الذکر خواهم ساخت.
موفق باشید.

shotok
10-05-2011, 08:15
سلام

بله این راه وجود دارد!
همانطور که گفتم نامش LINQ to SQL و Entity Data Model است!
این ابزار پا را در راحتی شما فراتر هم گذاشته، چطور؟
شما فرمودید که کلاسهایی با Property متناظر هر فیلد و... درست کردید؟
شما فقط کافیست یک شی متناظر LINQ to SQL یا Entity Data Model به پروژه خود اضافه کنید و بعد با چند کلیک ساده خود دات نت کلاسی با Property هایی متناظر هر فیلد و واحدهای ساختمانی ارتباطی و... تشکیل میدهد، حتی شما حتی نیازی به تعریف آن کلاس را هم نخواهید داشت.
در حاضر حاضر کمی کار دارم ... :11: شما یک امتحان و کوششی بفرمائید، (Project->Add New Item) اگر به نتیجه نرسیدید، برایتان یک نمونه ساده ارتباط با دیتابیس با سه لایه فوق الذکر خواهم ساخت.
موفق باشید.

از راهنمایی شما بینهایت سپاسگزارم.
موردی که فرموده بودید امتحان کردم ولی متاسفانه هنوز متوجه مفهوم سه لایه نشدم!!!!!!

_H2_
21-05-2011, 19:24
سلام
میبخشید کمی سرم شلوغ بود (سایت شخصی هم را هم سرورش را داشتم عوض میکردم...) بحرحال میبخشید ...
انشاا... قبل پایان هفته جاری سمپلی شامل هر سه مورد فوق با گراید و Insert خارج گراید برایتان آپلود خواهم کرد.

_H2_
04-06-2011, 10:18
سلام
:11::11::11::11:
:11::11::11::11:
:11::11::11::11:
نمونه کد استفاده از سه پلتفرم ارتباطی فوق که در جهت یکسان بودن فرم ها و عدم Copy و Paste کمی با چاشین شی گرایی مخلوط شده ولی کد واضحی دارد.
- در مدل DataSet و Entity که توانایی استفاده از SP ها مهیا بوده از سه SP در دیتابیس برای Update و Delete و Insert استفاده شده.
- مدل DataSet در زمان باز شدن پنجره نیاز حتمی به عمل بازگذاری و کلیک دکمه Load دارد.

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

shotok
10-06-2011, 16:56
سلام
:11::11::11::11:
:11::11::11::11:
:11::11::11::11:
نمونه کد استفاده از سه پلتفرم ارتباطی فوق که در جهت یکسان بودن فرم ها و عدم Copy و Paste کمی با چاشین شی گرایی مخلوط شده ولی کد واضحی دارد.
- در مدل DataSet و Entity که توانایی استفاده از SP ها مهیا بوده از سه SP در دیتابیس برای Update و Delete و Insert استفاده شده.
- مدل DataSet در زمان باز شدن پنجره نیاز حتمی به عمل بازگذاری و کلیک دکمه Load دارد.

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

با سلام
از اینکه وقت گذاشتید بینهایت سپاسگزارم انشاالله عاقبت بخیر بشید
متاسفانه وقتی فایلتون رو تو vs اجرا میکنم برنامه اجرا نمیشه:18:و فرم ها هم به صورت کد نمایش داده میشه

_H2_
10-06-2011, 20:16
سلام
اشاره کوتاهی کردم، فکر کردم کافی است و متوجه میشوید...
فرم های این برنامه با شرایط وراثتی خاص نوشته شده که به حداقل کد نیاز دارد و بهترین اطمینان را دارد ...
شما فقط باید frmMain و frmBaseChild را باز کنید و کنترل هایش را ویرایش کنید.
به هیچ وجه نباید frmMain های سه شاخه فرعی دبل کلیک شود، چون نیازی نیست.

به فرم frmBaseChild و کدهایش دقت کنید.
این کلاس رویدادها را به سادگی هندلر کرده و چهار تابع را برای کارش فراخوانی میکند که فاقد هرگونه کدی هستند.
کد این چهار تابع بعداً در سه frmMain سه زیر بخش نوشته شده...
یعنی سه frmMain سه زیربخش فقط و فقط شامل کد این چهار تابع است.

مثلاً در واقع اگر کد DataSet/frmMain با کد frmBaseChild تلفیق شود، با هم تشکیل کد فرم بخش DataSet را میدهند.
یک وراثت ساده است که باعث شده کد مشترک frmBaseChild به جای انکه سه بار نوشته شود، یک بار نوشته شده و سه بار استفاده شود.

تابع GetDataSource منبع داده های برای تحویل به DataGridView.Datasource میگیرد.

تابع OnLoadDatabase اطلاعات جاری را مجدد از دیتابیس میخواند.

تابع OnSaveDatabase اطلاعات در RAM و آخرین تغییرات را در دیتابیس اصلی ذخیره میکند.

تابع OnAddDatebase یک سطر جدید در دیتابیس ایجاد میکند.

در واقع کد frmBaseChild اصلاً مهم نیست! چون کد UI است! کد کنترلها و کلیک و...
شما کافی است کدهای DataSet/frmMain و Entity/frmMain و LinqToSql/frmMain و چهار تابع فوق را را فقط نگاه کنید.
در واقع این وراثت بجز جلوگیری از تکرار کد، کدهای بیربط را هم در frmBaseChild جدا کرده، تا شما فقط کدهای اصل Save و Load و... را در سه فایل به طور مجزاشده بتوانید مشاهده کنید.

با خواندن مجدد توضیحات فوق، ببینید میتوانید متوجه شوید؟ اگر از جنبه این مکانیزم وراثتی مشکلی داشتید و در فهم کد همچنان مشکلی داشتید... چاره ای نیست، بفرمائید، کد مشترک را هم سه بار کپی میکنم و سه فرم مجزا تولید میکنم که شرایط وراثتی برای کدمشترک نداشته باشند.
موفق باشید.

shotok
14-06-2011, 16:39
با سلام
اگه امکان داره بیشتر توضیح بدید. لطفا فرم های همراه با کنترل (اعم از باتوم و ...) با پسوند resx رو هم ضمیمه کنید که به فهم بیشتر کمک کند
پیشاپیش تشکر میکنم:11:

_H2_
17-06-2011, 02:32
سلام
پک دانلودی فوق را اصلاح کردم.
در حال حاضر دو پوشه 1 و 2 دارد.
در پوشه 1 دیگر فایل frmBaseChild وجود ندارد و کل آن سه بار در قالب سه فرم کاملآ مستقل در زیر شاخه های سه روش کار با دیتابیس کپی شده است.
در پوشه 2 همان کدقبلی که در پست قبل هم تشریح شد وجود دارد.

شما میتوانید از محتویات پوشه 1 استفاده کنید که همه فرم ها مستقل و با دبل کلیک قابل ویرایش هستند... در حد همان شرایطی که با ان آشنا هستید.
لطفاً مجدد پک را از همان لینک قبلی دانلود کنید.
موفق باشید.

shotok
29-08-2011, 10:20
سلام
:11::11::11::11:
:11::11::11::11:
:11::11::11::11:
نمونه کد استفاده از سه پلتفرم ارتباطی فوق که در جهت یکسان بودن فرم ها و عدم Copy و Paste کمی با چاشین شی گرایی مخلوط شده ولی کد واضحی دارد.
- در مدل DataSet و Entity که توانایی استفاده از SP ها مهیا بوده از سه SP در دیتابیس برای Update و Delete و Insert استفاده شده.
- مدل DataSet در زمان باز شدن پنجره نیاز حتمی به عمل بازگذاری و کلیک دکمه Load دارد.

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

سلام
من باز به کدها احتیاج دارم ولی متاسفانه لینکش پاک شده بود
اگر با VS 2008 باشه خیلی بهتره چون 2010 رو نصب نکردم:11:

_H2_
30-08-2011, 20:06
سلام

من باز به کدها احتیاج دارم ولی متاسفانه لینکش پاک شده بود
اگر با VS 2008 باشه خیلی بهتره چون 2010 رو نصب نکردم
در خصوص دانلود متاسفانه مشکلی برای این پک (و یک پک دیگر) ایجاد شده بود که رفع شد و در حال حاضر لینک سالم و معتبر است.

اما درخصوص VS2008,2010 باید عضر خواهی کنم، متاسفانه من هم VS2008 را نصب ندارم!
اول آنکه اگر دقت عملکرد کافی داشته باشید میتوانید در VS2008 پروژه جدیدی آغاز کنید و فایلهای سورس این بسته جاری را در آن وارد و استفاده کنید.
و ثانیاً در نهایت حداقل میتوانید کد آن را در Notepad ملاحظه کنید.
ضمن اینکه کلاً پروژه نمونه بسیار ساده و کوچک با کد کمی است و مشاده کدها در Notepad هم شاید مشکلتان را حل کند.

بحرحال عضرخواهی میکنم امکان دادن بسته منطبق با VS2008 را ندارم. شرمنده.

عید سعید فطر را هم به شما و کلیه دوستان در این سایت تبریک عرض میکنم.
موفق باشید.

shotok
02-09-2011, 11:09
سلام

عید سعید فطر را هم به شما و کلیه دوستان در این سایت تبریک عرض میکنم.
موفق باشید.

از لطف شما ممنون
انشاالله این عید برای همه مبارک و پر خیرو برکت باشه:11:

لینک رو چک کردم، متاسفانه هنوز لینک مشکل داره:18:

shotok
06-09-2011, 17:55
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

با سلام
متاسفانه لینک هنوز مشکل داره

_H2_
06-09-2011, 22:09
سلام
مجدد سعی کنید، شاید در ساعت مدنظر نظر شما سروراصلی ترافیک داشته و...
بحرحال لینک دیگری هم وجود دارد:

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

shotok
08-09-2011, 06:28
سلام
مجدد سعی کنید، شاید در ساعت مدنظر نظر شما سروراصلی ترافیک داشته و...
بحرحال لینک دیگری هم وجود دارد:

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


سلام
از اینکه وقت گذاشتید ممنونم:11:
هر دو لینک رو امتحان کردم؛ هیچ کدوم جواب نداد

_H2_
08-09-2011, 22:09
سلام
برایتان فایل را در سرور آپلود عمومی ای آپلود کردم:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

اگر برایتان امکان دارد کمکم کنید تا اگر مشکلی وجود در بخش دانلود وجود دارد حلش کنم!
چون خودم شخصاً لینک های بخش دانلود را بارها از اینترنت های مختلف و با سیستم عامل و مرورگرهای مختلف آزمایش کردم، حتی با موبایل هم دانلود داشتم ...

چه ساعتی امتحان میکنید؟
پیام خطایی دریافت میکنید؟
مرورگرتان چیست و چه ورژنی دارد؟
از برنامه خاصی برای دانلود استفاده میکنید؟
مطمئن هستید لینک را درست و کامل کپی میکنید؟

shotok
10-09-2011, 12:17
سلام
برایتان فایل را در سرور آپلود عمومی ای آپلود کردم:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] 2F%3F5uxo9kr95auq1bv).com/?5uxo9kr95auq1bv ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] 2F%3F5uxo9kr95auq1bv)

با عرض سلام
از اینکه وقت گذاشتید بینهایت سپاسگزارم


اگر برایتان امکان دارد کمکم کنید تا اگر مشکلی وجود در بخش دانلود وجود دارد حلش کنم!
چون خودم شخصاً لینک های بخش دانلود را بارها از اینترنت های مختلف و با سیستم عامل و مرورگرهای مختلف آزمایش کردم، حتی با موبایل هم دانلود داشتم ...

چه ساعتی امتحان میکنید؟

هم نزدیک صبح بوده هم طول روز. چندین بار امتحان کردم


پیام خطایی دریافت میکنید؟


internet explorer was not able to open this internet site. the requested site is either unavailable or cannot be found. Please try again later.

مرورگرتان چیست و چه ورژنی دارد؟
IE


از برنامه خاصی برای دانلود استفاده میکنید؟

هم از IDM استفاده کردم و هم بدون اون امتحان کردم

مطمئن هستید لینک را درست و کامل کپی میکنید؟
بله

_H2_
10-09-2011, 22:17
سلام
با عرض پوزش، فقط اگر مشکلی برایتان ندارد، یک سوال دیگر، خط اینترنت تان از چه شرکتی است؟
(نمیدانم ولی شاید DNS سایت در ISP های مشخصی مشکل داشته باشد که اگر برایم اثبات شود، باید فکری بحالش بکنم!)

shotok
11-09-2011, 20:24
سلام
با عرض پوزش، فقط اگر مشکلی برایتان ندارد، یک سوال دیگر، خط اینترنت تان از چه شرکتی است؟
(نمیدانم ولی شاید DNS سایت در ISP های مشخصی مشکل داشته باشد که اگر برایم اثبات شود، باید فکری بحالش بکنم!)

با سلام
از خود مخابرات گرفتم.