PDA

View Full Version : حرفه ای: عملیات اصلی sql



behrooz69
چهارشنبه 17 خرداد 1396, 10:20 صبح
سلام دوستان گل ، بعد از چند وقت بلند مدت که نبودم دوباره برگشتم ، خدمت جناب آقای آشتیانی هم سلام عرض میکنم.

دوستان به نظر شما 4 عمل اصلی Insert و Delete و Update و Select ... رو در بهترین حالت از چه روشی باید استفاده کرد که هم بهینه باشه ؟ هم سرعتش بالا باشه ؟ هم در حجم بالای اطلاعات کم نیاره ؟؟؟!!

با ذکر مثال و توضیح و نمونه لطفا اعلام کنید .

کجا باید از Try استفاده کرد ، و کجاها نباید ؟!

کجا باید کانکشن هارو بست و کجا نباید ؟!

public class برای عملیات استفاده کرد یا نباید کرد ؟

فعلا به این برسیم تا بریم سراغ مبحث بعدی .

محمد آشتیانی
چهارشنبه 17 خرداد 1396, 18:15 عصر
سلام خدمت شما و تشکر

- استفاده از Entity Framework به نظرم بهترین روشه در حال حاضر ، خوانایی کد رو بالا میبره ، شما امکان استفاده از IntelliSense رو برای کار با دیتابیس دارید ، امکان خطایابی رو به راحتی فراهم میکنه ، از خطاهایی که در نوشتن کوئری های T-SQL ممکنه به وجود بیاد جلوگیری میکنه (خطاهای املایی خصوصا) و بسیاری مزایای دیگه...
- از بلوک Try Catch تقریبا همه جا باید استفاده کرد ، منتهی نه برای کور کردن خطاهای احتمالی (در نظر بگیرید بلوک Try Catch رو زمانی که در بخش Catch هیچ کدی نوشته نشده باشه) ، بلکه برای مدیریت کردن خطاها ، ثبت لاگ خطاها و ... (این بند ربطی به دیتابیس نداره ، کلیه)
- کانکشن رو هرجا مورد نیاز هست (جایی که قراره کوئری Execute بشه) باید باز کرد و در اولین خط پس از اجرای کوئری (جایی که نیازی به باز بودن کانکشن نیست) ببندید.
- خیر به نظرم (البته اگر درست متوجه منظورتون شده باشم)



موفق باشید.

behrooz69
جمعه 19 خرداد 1396, 18:21 عصر
ممنونم از پاسخگوییت دوست من .

یه نمونه مثال میزنید ؟؟ چهار عمل اصلی رو با Entity Freamwork ؟

و اینکه فرق T-Sql با Sql Server چیه ؟؟

ببینید جناب آشتیانی گل ، من برای یه شرکتی قراره برنامه داخلی بنویسم که قراره تحت شبکه احرا شه و چندین بخش داره که فقط یه بخشش ثبت اطلاعات هست ، بیشترش جستجو هست ، و قراره بیشتر جستجو انجام بشه و امکان داره در آن واحد 10 نفر همزمان جستجو کنند .

بهترین پیشنهادتون چیه قربان ؟؟ یه مثال کدی میزنید برای عملیات اصلی ما . چون بیشتر از این عملیات اصلی ما که کار انجام نمیشه که

hamidrezax1
شنبه 20 خرداد 1396, 16:28 عصر
مبحث جالبی هستش.امیدوارم که جناب آشتیانی این،موضوع رو بررسی وبا همکاری شما ادامه بدن

niknam_mh
چهارشنبه 24 خرداد 1396, 10:09 صبح
سلام
مبحث خیلی خوبی هست امیدورام ادامه داشته باشه......

محمد آشتیانی
پنج شنبه 25 خرداد 1396, 15:11 عصر
سلام
این مثال خیلی ساده رو ببینید


توجه کنید
- فایل های پکیج های Nuget مربوط به Entity Framework رو از فولدر packages حذف کردم تا سایز آپلود پروژه کم بشه ، بنابراین ، شما وقتی پروژه رو باز کردید روی Solution راست کلیک کنید و گزینه Restore NuGet Packages رو انتخاب کنید تا پکیج های مربوطه از سرور Nuget به پروژه اضافه بشه.
- کانکشن استرینگ رو مطابق با سیستم خودتون تنظیم کنید (کانکشن استرینگ داخل کلاس EntityFrameworkExampleContext نوشته شده)


موفق باشید.

محمد آشتیانی
پنج شنبه 25 خرداد 1396, 15:26 عصر
ممنونم از پاسخگوییت دوست من .

یه نمونه مثال میزنید ؟؟ چهار عمل اصلی رو با Entity Freamwork ؟

و اینکه فرق T-Sql با Sql Server چیه ؟؟

ببینید جناب آشتیانی گل ، من برای یه شرکتی قراره برنامه داخلی بنویسم که قراره تحت شبکه احرا شه و چندین بخش داره که فقط یه بخشش ثبت اطلاعات هست ، بیشترش جستجو هست ، و قراره بیشتر جستجو انجام بشه و امکان داره در آن واحد 10 نفر همزمان جستجو کنند .

بهترین پیشنهادتون چیه قربان ؟؟ یه مثال کدی میزنید برای عملیات اصلی ما . چون بیشتر از این عملیات اصلی ما که کار انجام نمیشه که

سلام
عرض به حضورتون که Sql Server یک DBMS هست و T-SQL زبان اسکریپت نویسی Sql Server ، به زبان ساده ، همین کوئری هایی که می نویسید T-SQL هست

hamidrezax1
پنج شنبه 02 شهریور 1396, 16:29 عصر
سلام دوستان وقت بخیر میخواستم بدونم مشابه این دستور در vb چجوریه؟

var students =Context.Database.SqlQuery<dynamic>("select FirstName from student").ToList();

hamidrezax1
جمعه 10 شهریور 1396, 09:55 صبح
ممنون میشم راهنمایی کنید

samiasoft
شنبه 11 شهریور 1396, 03:47 صبح
سلام دوستان وقت بخیر میخواستم بدونم مشابه این دستور در vb چجوریه؟
var students =Context.Database.SqlQuery<dynamic>("select FirstName from student").ToList();
Dim students = Context.Database.SqlQuery(Of dynamic)("select FirstName from student").ToList()

hamidrezax1
شنبه 11 شهریور 1396, 13:44 عصر
با سلام متاسفانه من به هیچ نتیجه ای نرسیدم. میشه لطفا کمک کنید.کمک کنید و بهم بگین چجوری میتونم دستورات SQL رو با روش
Entity Framework انجام بدم.ممنون میشم راهنمایی کنید

محمد آشتیانی
دوشنبه 13 شهریور 1396, 08:42 صبح
سلام
اون dynamic که در کوئری پست 8 نوشته شده ، در واقع تایپی هست که شما در نظر دارید کوئریتون اون رو برگردونه ، به دوشکل میشه انجامش داد
(مثال ها با نمونه برنامه موجود در پست 6 قابل اجرا هستن)

اول
Dim QueryResult = _context.Persons.SqlQuery("SELECT * FROM Persons WHERE personid = ***").ToList()

دوم (چیزی که شما در موردش سوال کرده بودید)
Dim QueryResult = _context.Database.SqlQuery(of Person)("SELECT * FROM Persons WHERE personid = ***").ToList()



خروجی ها در هر دو مورد یکی هست

موفق باشید.

hamidrezax1
دوشنبه 13 شهریور 1396, 18:58 عصر
سلام استاد متاسفانه من از ویژوال استادیو 2010 استفاده میکنم و نمی تونم فرم شما رو باز کنم و مجبورم از دیزاین فرم باز کنم تا به کدهاش دسترسی داشته باشم متاسفانه من نمی تونم کد ایمپورت تصویر زیر رو درست کنم اگر راهنمایی کنید ممنون میشم استاد .با تشکر
146223

niknam_mh
سه شنبه 14 شهریور 1396, 09:54 صبح
سلام
این مثال خیلی ساده رو ببینید


توجه کنید
- فایل های پکیج های Nuget مربوط به Entity Framework رو از فولدر packages حذف کردم تا سایز آپلود پروژه کم بشه ، بنابراین ، شما وقتی پروژه رو باز کردید روی Solution راست کلیک کنید و گزینه Restore NuGet Packages رو انتخاب کنید تا پکیج های مربوطه از سرور Nuget به پروژه اضافه بشه.
- کانکشن استرینگ رو مطابق با سیستم خودتون تنظیم کنید (کانکشن استرینگ داخل کلاس EntityFrameworkExampleContext نوشته شده)


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

محمد آشتیانی
سه شنبه 14 شهریور 1396, 12:13 عصر
سلام استاد عزیز
کاش یکم در مورد این روش توضیح میدادید و طریق اتچ کردن دیتابیس و کانکشن استرینگ رو هم می گفتید .
در ضمن آیا این روش بهتر هست یا سه لایه؟
ممنون

سلام
EntityFramework در اولین اجرا ، خودش طبق کلاس های POCO ، دیتابیس رو میسازه بر اساس کانکشن استرینگ.
مطلب بعدی اینکه استفاده از EntityFramework ، ربطی به معماری چند لایه نداره و از EF هم در تولید نرم افزار N-Tier استفاده میشه ، اساسا این ها دو تا مبحث جدا هستند و به هم ارتباطی ندارند.
(EntityFramework یک تکنولوژی دسترسی به داده ها هست و طراحی به صورت چند لایه یک معماری)




موفق باشید

hamidrezax1
سه شنبه 14 شهریور 1396, 13:10 عصر
استاد میشه لطف کنید و همین پروژه رو با vb2010 آپلود کنید
با تشکر

محمد آشتیانی
سه شنبه 14 شهریور 1396, 13:41 عصر
استاد میشه لطف کنید و همین پروژه رو با vb2010 آپلود کنید
با تشکر

سلام
ویژوال استودیو 2010 نداشتم ، فایل سلوشن رو تغییراتی دادم ، تست کنید ببینید این توی 2010 باز میشه
http://s8.picofile.com/file/8305604092/EntityFrameworkExample.rar.html

hamidrezax1
سه شنبه 14 شهریور 1396, 15:46 عصر
سلام استاد جواب داد یه دنیا ممنون