برای ساخت یک ماشین حساب ساده در سی شارپ با استفاده از Windows Forms و کنترلهای NumericUpDown و RadioButton، میتوانید مراحل زیر را دنبال کنید:
- ایجاد پروژه جدید:
- در ویژوال استودیو، یک پروژه جدید از نوع Windows Forms Application ایجاد کنید.
- طراحی رابط کاربری:
- دو کنترل NumericUpDown برای ورودی اعداد اضافه کنید.
- چهار RadioButton برای عملیات جمع، تفریق، ضرب و تقسیم اضافه کنید.
- یک دکمه برای نمایش نتیجه اضافه کنید.
- ایجاد اینترفیس:
public interface ICalculator
{
decimal Add(decimal number1, decimal number2);
decimal Subtract(decimal number1, decimal number2);
decimal Multiply(decimal number1, decimal bnumber2);
decimal Divide(decimal number1, decimal number2);
}
- پیادهسازی کلاس Calculator:
public class Calculator : ICalculator
{public decimal Add(decimal number1, decimal number2) => number1 + number2;
public decimal Divide(decimal number1, decimal number2)
{
if (number2 == 0)
throw new DivideByZeroException("نمی توان بر صفر تقسیم کرد");
return number1 / number2;
}
public decimal Multiply(decimal number1, decimal bnumber2) => number1 * bnumber2;
public decimal Subtract(decimal number1, decimal number2) => number1 - number2;
}
- اتصال رویدادها به دکمهها:
- در فرم اصلی، یک نمونه از کلاس Calculator ایجاد کنید و رویداد کلیک دکمهها را به متدهای مربوطه متصل کنید.
public partial class Form1 : Form
{
Calculator calculator;
public Form1()
{
InitializeComponent();
calculator = new Calculator();
}
private void btnCalculate_Click(object sender, EventArgs e)
{
decimal num1 = txtNumber1.Value;
decimal num2 = txtNumber2.Value;
decimal result = 0;
if (radioButtonAdd.Checked)
result = calculator.Add(num1, num2);
else if (radioButtonSubtract.Checked)
result = calculator.Subtract(num1, num2);
else if (radioButtonMultiply.Checked)
result = calculator.Multiply(num1, num2);
else if (radioButtonDivide.Checked)
{
try
{
result = calculator.Divide(num1, num2);
}
catch (DivideByZeroException ex)
{
MessageBox.Show(ex.Message);
return;
}
}
MessageBox.Show($"جواب = {result}");
}
}
این مراحل به شما کمک میکند تا یک ماشین حساب ساده با استفاده از سی شارپ و Windows Forms ایجاد کنید.
و ساخت پروژه ماشین حساب مدرس ایمان مدائنی
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، تمام رکوردهای موجود در لیست را انتخاب و چاپ میکنیم.