eitaa logo
پروژه ASP.Net Core MVC (وب و سی شارپ)
119 دنبال‌کننده
168 عکس
38 ویدیو
376 فایل
❁﷽❁ آموزش 📖 برنامه نویسی ASP.Net Core MVC (وب و سی شارپ) Admin: @alialirezapanahi برنامه نویسی برنامه نویسی سی شارپ eitaa.com/sisharpapp برنامه نویسی وب eitaa.com/aspdatnet ویراستی virasty.com/alialirezapanahi آپارات aparat.com/alialirezapanahi
مشاهده در ایتا
دانلود
و ساخت پروژه ماشین حساب مدرس ایمان مدائنی https://eitaa.com/sisharpapp/248
اتصال به SQL Server با استفاده از نقطه (.) به عنوان نام سرور به این معناست که شما به نمونه محلی (local instance) SQL Server متصل می‌شوید. اگر این روش دیگر کار نمی‌کند، ممکن است دلایل مختلفی داشته باشد: - نمونه SQL Server در حال اجرا نیست: مطمئن شوید که سرویس SQL Server در حال اجرا است. می‌توانید این کار را از طریق SQL Server Configuration Manager یا Services در ویندوز بررسی کنید. - تغییرات در تنظیمات شبکه: ممکن است تنظیمات شبکه یا فایروال تغییر کرده باشد و مانع از اتصال شما شود. بررسی کنید که پورت 1433 (پورت پیش‌فرض SQL Server) باز است و فایروال مانع اتصال نمی‌شود. - نام نمونه SQL Server: اگر از نسخه‌های مختلف SQL Server استفاده می‌کنید، ممکن است نام نمونه تغییر کرده باشد. به عنوان مثال، اگر از SQL Server Express استفاده می‌کنید، نام نمونه به صورت .\SQLEXPRESS خواهد بود. - مشکلات احراز هویت: مطمئن شوید که از اعتبارنامه‌های صحیح برای اتصال استفاده می‌کنید. اگر از احراز هویت ویندوز استفاده می‌کنید، مطمئن شوید که حساب کاربری شما دسترسی لازم را دارد. - تنظیمات پروتکل TCP/IP: بررسی کنید که پروتکل TCP/IP برای نمونه SQL Server فعال است. این کار را می‌توانید از طریق SQL Server Configuration Manager انجام دهید. برای بررسی این موارد، می‌توانید از ابزار SQL Server Management Studio (SSMS) استفاده کنید و سعی کنید به صورت دستی به نمونه SQL Server متصل شوید.
Data Source=.\SQLEXPRESS;Initial Catalog=Contact_DB; و Server=.\SQLEXPRESS;Database=MyDatabase; در واقع، هر دو روش آدرس‌دهی به یک نمونه SQL Server Express محلی اشاره دارند و تفاوتی در عملکرد آنها وجود ندارد. هر دو به نمونه SQLEXPRESS محلی متصل می‌شوند و تنها تفاوت در نحوه نوشتن آنها است. به عنوان مثال: - Data Source=.\SQLEXPRESS;Initial Catalog=Contact_DB;: string connectionString = "Data Source=.\SQLEXPRESS;Initial Catalog=Contact_DB;Integrated Security=True;"; - Server=.\SQLEXPRESS;Database=MyDatabase;: string connectionString = "Server=.\SQLEXPRESS;Database=MyDatabase;Integrated Security=True;"; هر دو رشته اتصال به یک نمونه SQL Server Express محلی متصل می‌شوند. شما می‌توانید هر کدام را که ترجیح می‌دهید استفاده کنید. و سایر تنظیمات مانند احراز هویت (Integrated Security=True) صحیح باشند.
دفترچه تلفن من.pdf
حجم: 534.5K
من دفترچه تلفن را ساختم با کمک مدرس ایمان مدائنی و توضیحاتی در آن قرار دادم https://eitaa.com/sisharpapp/256
MyContacts.zip
حجم: 139.6K
این فایل پروژه هست که تغییراتی در آن قرار دادم و به جای دکمه جدا در داخل لیست دکمه ویرایش و حذف قرار دادم
برای ساخت یک پنجره لاگین در سی شارپ و ویندوز فرم، می‌توانید مراحل زیر را دنبال کنید: 1- ایجاد فرم لاگین: - یک پروژه جدید ویندوز فرم در ویژوال استودیو ایجاد کنید. - یک فرم جدید به نام LoginForm اضافه کنید. - دو تکست باکس برای نام کاربری (txtUsername) و رمز عبور (txtPassword) و یک دکمه برای ورود (btnLogin) به فرم اضافه کنید. 2- طراحی فرم: - فرم را به شکلی طراحی کنید که کاربر بتواند نام کاربری و رمز عبور خود را وارد کند. - برای رمز عبور، خاصیت PasswordChar تکست باکس را تنظیم کنید تا کاراکترهای رمز عبور به صورت نقطه یا ستاره نمایش داده شوند. 3- اتصال به دیتابیس: - یک دیتابیس ایجاد کنید و جدولی به نام Users با ستون‌های Username و Password ایجاد کنید. - از کلاس‌های SqlConnection و SqlCommand برای اتصال به دیتابیس و اجرای کوئری‌ها استفاده کنید. 4- کدنویسی رویداد دکمه ورود: - در رویداد کلیک دکمه ورود، کد زیر را اضافه کنید تا نام کاربری و رمز عبور وارد شده را با اطلاعات موجود در دیتابیس مقایسه کند: using System; using System.Data; using System.Data.SqlClient; using System.Windows.Forms; namespace LoginApp { public partial class LoginForm : Form { public LoginForm() { InitializeComponent(); } private void btnLogin_Click(object sender, EventArgs e) { string connectionString = "your_connection_string_here"; using (SqlConnection connection = new SqlConnection(connectionString)) { string query = "SELECT COUNT(1) FROM Users WHERE Username=@Username AND Password=@Password"; SqlCommand command = new SqlCommand(query, connection); command.Parameters.AddWithValue("@Username", txtUsername.Text); command.Parameters.AddWithValue("@Password", txtPassword.Text); connection.Open(); int count = Convert.ToInt32(command.ExecuteScalar()); if (count == 1) { MessageBox.Show("Login successful!"); // Open the main form or perform other actions } else { MessageBox.Show("Username or password is incorrect."); } } } } } این کد بررسی می‌کند که آیا نام کاربری و رمز عبور وارد شده با اطلاعات موجود در دیتابیس مطابقت دارد یا خیر. در صورت موفقیت، پیام موفقیت‌آمیز نمایش داده می‌شود و در غیر این صورت، پیام خطا نمایش داده می‌شود. برای اطلاعات بیشتر و جزئیات دقیق‌تر، می‌توانید به منابع آموزشی آنلاین مراجعه کنید.
با استفاده از سی شارپ یک دیتابیس ایجاد کنید. برای این کار می‌توانید از ADO.NET و کلاس‌های مربوط به SQL Server استفاده کنید. در اینجا یک مثال ساده برای ایجاد یک دیتابیس در سی شارپ آورده شده است: - ایجاد پروژه: - یک پروژه جدید ویندوز فرم در ویژوال استودیو ایجاد کنید. - یک دکمه به فرم اضافه کنید و نام آن را btnCreateDatabase بگذارید. - اضافه کردن کد: - در رویداد کلیک دکمه، کد زیر را اضافه کنید تا یک دیتابیس جدید ایجاد شود: using System; using System.Data.SqlClient; using System.Windows.Forms; namespace CreateDatabaseApp { public partial class MainForm : Form { public MainForm() { InitializeComponent(); } private void btnCreateDatabase_Click(object sender, EventArgs e) { string connectionString = "Server=localhost;Integrated security=SSPI;database=master"; using (SqlConnection connection = new SqlConnection(connectionString)) { string query = "CREATE DATABASE MyDatabase ON PRIMARY " + "(NAME = MyDatabase_Data, " + "FILENAME = 'C:\\MyDatabaseData.mdf', " + "SIZE = 2MB, MAXSIZE = 10MB, FILEGROWTH = 10%) " + "LOG ON (NAME = MyDatabase_Log, " + "FILENAME = 'C:\\MyDatabaseLog.ldf', " + "SIZE = 1MB, MAXSIZE = 5MB, FILEGROWTH = 10%)"; SqlCommand command = new SqlCommand(query, connection); try { connection.Open(); command.ExecuteNonQuery(); MessageBox.Show("Database created successfully!"); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } } } این کد یک دیتابیس جدید به نام MyDatabase ایجاد می‌کند و فایل‌های دیتابیس را در مسیر مشخص شده ذخیره می‌کند.
با استفاده از سی شارپ و ADO.NET جداول دیتابیس را ایجاد کنید. در اینجا یک مثال ساده برای ایجاد یک جدول در دیتابیس آورده شده است: - ایجاد پروژه: - یک پروژه جدید ویندوز فرم در ویژوال استودیو ایجاد کنید. - یک دکمه به فرم اضافه کنید و نام آن را btnCreateTable بگذارید. - اضافه کردن کد: - در رویداد کلیک دکمه، کد زیر را اضافه کنید تا یک جدول جدید ایجاد شود: using System; using System.Data.SqlClient; using System.Windows.Forms; namespace CreateTableApp { public partial class MainForm : Form { public MainForm() { InitializeComponent(); } private void btnCreateTable_Click(object sender, EventArgs e) { string connectionString = "Server=localhost;Database=MyDatabase;Integrated Security=True;"; using (SqlConnection connection = new SqlConnection(connectionString)) { string query = "CREATE TABLE Users (" + "ID INT PRIMARY KEY IDENTITY(1,1), " + "Username NVARCHAR(50), " + "Password NVARCHAR(50))"; SqlCommand command = new SqlCommand(query, connection); try { connection.Open(); command.ExecuteNonQuery(); MessageBox.Show("Table created successfully!"); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } } } این کد یک جدول جدید به نام Users با ستون‌های ID، Username و Password ایجاد می‌کند.
لینک LINQ مخفف Language Integrated Query به معنای زبان پرس و جوی یکپارچه است. این تکنولوژی در نسخه 3.5 دات نت معرفی شد و به برنامه‌نویسان اجازه می‌دهد تا با استفاده از یک زبان واحد، داده‌ها را از منابع مختلف مانند لیست‌ها، آرایه‌ها، دیتابیس‌ها و فایل‌های XML پرس و جو کنند. مزایای LINQ:- خوانایی کد: کدهای نوشته شده با LINQ خواناتر و قابل فهم‌تر هستند. - سرعت توسعه: با استفاده از LINQ، نیازی به نوشتن کدهای پیچیده برای دسترسی به داده‌ها نیست و می‌توان سریع‌تر برنامه‌ها را توسعه داد. - کاهش خطاها: به دلیل خوانایی بالای کدهای LINQ، اشکال‌زدایی و رفع خطاها آسان‌تر می‌شود. - پشتیبانی از انواع داده‌ها: LINQ می‌تواند با انواع مختلف منابع داده مانند دیتابیس‌ها، لیست‌ها، آرایه‌ها و فایل‌های XML کار کند. انواع LINQ:- LINQ to Objects: برای کار با مجموعه‌های درون حافظه مانند لیست‌ها و آرایه‌ها. - LINQ to SQL: برای کار با دیتابیس‌های SQL Server. - LINQ to XML: برای کار با فایل‌های XML. - LINQ to Entities: برای کار با Entity Framework. مثال ساده: List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; var evenNumbers = from number in numbers where number % 2 == 0 select number; foreach (var num in evenNumbers) { Console.WriteLine(num); } این کد اعداد زوج را از لیست numbers انتخاب کرده و چاپ می‌کند.
Select * From Person as p و From p in Person Select p برای توضیح دستورات SQL و نحوه استفاده از آن‌ها در یک برنامه کنسول سی‌شارپ، ابتدا به توضیح هر دستور می‌پردازیم و سپس یک مثال عملی ارائه می‌دهیم. دستور SELECT * FROM Person AS pاین دستور تمام ستون‌های جدول Person را انتخاب می‌کند و به آن یک نام مستعار p می‌دهد. به عبارت دیگر، این دستور تمام رکوردهای موجود در جدول Person را بازیابی می‌کند. دستور FROM p in Person SELECT pاین دستور مشابه دستور قبلی است، اما به سبک LINQ در سی‌شارپ نوشته شده است. این دستور تمام رکوردهای جدول Person را انتخاب می‌کند و هر رکورد را به صورت یک شیء p برمی‌گرداند. مثال کنسول سی‌شارپدر این مثال، فرض می‌کنیم که یک پایگاه داده SQL Server داریم که شامل جدولی به نام Person است. ابتدا باید یک اتصال به پایگاه داده برقرار کنیم و سپس داده‌ها را بازیابی کنیم. using System; using System.Data.SqlClient; using System.Linq; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { string connectionString = "your_connection_string_here"; List<Person> people = new List<Person>(); using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); string query = "SELECT * FROM Person"; SqlCommand command = new SqlCommand(query, connection); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { Person person = new Person { Id = reader.GetInt32(0), Name = reader.GetString(1), Age = reader.GetInt32(2) }; people.Add(person); } } var selectedPeople = from p in people select p; foreach (var person in selectedPeople) { Console.WriteLine($"ID: {person.Id}, Name: {person.Name}, Age: {person.Age}"); } } } class Person { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } } } در این مثال: - ابتدا یک اتصال به پایگاه داده SQL Server برقرار می‌کنیم. - با استفاده از دستور SELECT * FROM Person تمام رکوردهای جدول Person را بازیابی می‌کنیم. - داده‌های بازیابی شده را در یک لیست از اشیاء Person ذخیره می‌کنیم. - با استفاده از LINQ، تمام رکوردهای موجود در لیست را انتخاب و چاپ می‌کنیم.
int[] numbers = { 1, 3, 5, 7, 9, 10, 15, 19, 20, 25, 34, 46, 50, 60, 70, 80, 100 }; این خط یک آرایه از اعداد صحیح به نام numbers ایجاد می‌کند. int[] result1 = (from n in numbers select n).ToArray(); این خط تمام اعداد موجود در آرایه numbers را انتخاب کرده و به یک آرایه جدید به نام result1 تبدیل می‌کند. int[] result2 = (from n in numbers orderby n descending select n).ToArray(); این خط اعداد موجود در آرایه numbers را به ترتیب نزولی مرتب کرده و به یک آرایه جدید به نام result2 تبدیل می‌کند. int[] result3 = (from n in numbers where n > 30 && n < 80 orderby n descending select n).ToArray(); این خط اعداد بزرگتر از 30 و کوچکتر از 80 را از آرایه numbers انتخاب کرده، به ترتیب نزولی مرتب کرده و به یک آرایه جدید به نام result3 تبدیل می‌کند. int result4 = (from n in numbers where n == 3 select n).First(); این خط اولین عدد برابر با 3 را از آرایه numbers انتخاب کرده و به متغیر result4 اختصاص می‌دهد. int result5 = (from n in numbers where n == 2 select n).FirstOrDefault(); این خط اولین عدد برابر با 2 را از آرایه numbers انتخاب کرده و به متغیر result5 اختصاص می‌دهد. اگر چنین عددی وجود نداشته باشد، مقدار پیش‌فرض (صفر) را برمی‌گرداند. int result6 = (from n in numbers where n == 3 select n).Single(); این خط تنها عدد برابر با 3 را از آرایه numbers انتخاب کرده و به متغیر result6 اختصاص می‌دهد. اگر بیش از یک عدد برابر با 3 وجود داشته باشد، خطا رخ می‌دهد. int result7 = (from n in numbers where n == 2 select n).SingleOrDefault(); این خط تنها عدد برابر با 2 را از آرایه numbers انتخاب کرده و به متغیر result7 اختصاص می‌دهد. اگر چنین عددی وجود نداشته باشد، مقدار پیش‌فرض (صفر) را برمی‌گرداند. var i1 = 123; var i2 = "Iman Madaeny"; var i3 = DateTime.Now; //i1 = "Iman"; این خطوط متغیرهای i1، i2 و i3 را با مقادیر مختلف مقداردهی می‌کنند. خط آخر که کامنت شده است، نشان می‌دهد که نمی‌توان مقدار i1 را به یک رشته تغییر داد. bool result8 = (from n in numbers where n == 2 select n).Any(); این خط بررسی می‌کند که آیا عددی برابر با 2 در آرایه numbers وجود دارد یا خیر و نتیجه را به متغیر result8 اختصاص می‌دهد. int Count = (from n in numbers select n).Count(); int Max = (from n in numbers select n).Max(); int Min = (from n in numbers select n).Min(); int Sum = (from n in numbers select n).Sum(); این خطوط تعداد عناصر، بیشترین مقدار، کمترین مقدار و مجموع اعداد موجود در آرایه numbers را محاسبه می‌کنند. List<string> Names = new List<string>(); Names.Add("Iman"); Names.Add("Ali"); Names.Add("Sara"); Names.Add("Mohammad"); Names.Add("Mina"); این خطوط یک لیست از رشته‌ها به نام Names ایجاد کرده و چند نام به آن اضافه می‌کنند. var res1 = (from n in Names select n).ToList(); این خط تمام نام‌های موجود در لیست Names را انتخاب کرده و به یک لیست جدید به نام res1 تبدیل می‌کند. var res2 = (from n in Names where n.ToLower().Contains("i") select n).ToList(); این خط نام‌هایی که شامل حرف "i" هستند را از لیست Names انتخاب کرده و به یک لیست جدید به نام res2 تبدیل می‌کند. var res3 = (from n in Names where n.ToLower().StartsWith("i") select n).ToList(); این خط نام‌هایی که با حرف "i" شروع می‌شوند را از لیست Names انتخاب کرده و به یک لیست جدید به نام res3 تبدیل می‌کند. var res4 = (from n in Names where n.ToLower().EndsWith("i") select n).ToList(); این خط نام‌هایی که با حرف "i" تمام می‌شوند را از لیست Names انتخاب کرده و به یک لیست جدید به نام res4 تبدیل می‌کند.
عبارات لامبدا (Lambda Expressions) در سی شارپ یک روش ساده برای تعریف متدهای ناشناس هستند که به عنوان مقادیر از نوع Delegate استفاده می‌شوند. این عبارات به شما اجازه می‌دهند تا بدون نیاز به تعریف یک متد جداگانه، به سادگی یک تابع را درون کد خود تعریف و از آن استفاده کنید. ساختار یک عبارت لامبدا به صورت زیر است: (parameters) => expression برای مثال، فرض کنید می‌خواهید لیستی از اعداد را فیلتر کنید تا فقط اعدادی که بزرگتر از ۱۰ هستند باقی بمانند: List<int> numbers = new List<int> { 5, 10, 15, 20, 25 }; var filteredNumbers = numbers.Where(n => n > 10).ToList(); در این مثال، عبارت n => n > 10 یک لامبدا است که به عنوان یک شرط برای فیلتر کردن لیست اعداد استفاده می‌شود.