کار با فایلها و دیتابیس 💾
یاد میگیریم چطور اطلاعات رو ذخیره کنیم و از دیتابیس استفاده کنیم!
کار با فایلها: ذخیره و بازیابی اطلاعات
در Windows Forms میتونیم به راحتی با فایلها کار کنیم. از File و StreamWriter/StreamReader برای نوشتن و خوندن فایلهای متنی استفاده میکنیم. همچنین میتونیم از OpenFileDialog و SaveFileDialog برای انتخاب فایل توسط کاربر استفاده کنیم.
// نوشتن در فایل
private void SaveToFile()
{
string content = textBox1.Text;
string filePath = @"C:\temp\myfile.txt";
try
{
File.WriteAllText(filePath, content);
MessageBox.Show("فایل با موفقیت ذخیره شد!");
}
catch (Exception ex)
{
MessageBox.Show($"خطا در ذخیره فایل: {ex.Message}");
}
}
استفاده از File Dialogs
برای اینکه کاربر بتونه فایل انتخاب کنه، از OpenFileDialog و SaveFileDialog استفاده میکنیم. این کنترلها پنجرههای استاندارد ویندوز رو نمایش میدن.
// باز کردن فایل
private void OpenFile()
{
OpenFileDialog openDialog = new OpenFileDialog();
openDialog.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*";
openDialog.Title = "انتخاب فایل";
if (openDialog.ShowDialog() == DialogResult.OK)
{
try
{
string content = File.ReadAllText(openDialog.FileName);
textBox1.Text = content;
MessageBox.Show("فایل با موفقیت بارگذاری شد!");
}
catch (Exception ex)
{
MessageBox.Show($"خطا در خواندن فایل: {ex.Message}");
}
}
}
اتصال به دیتابیس SQL Server
برای کار با دیتابیس از SqlConnection و SqlCommand استفاده میکنیم. اول باید Connection String رو تعریف کنیم و بعد کوئریهامون رو اجرا کنیم.
using System.Data.SqlClient;
private void ConnectToDatabase()
{
string connectionString = @"Server=.\SQLEXPRESS;Database=MyDB;Integrated Security=true;";
try
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string query = "SELECT Name, Email FROM Users";
SqlCommand command = new SqlCommand(query, connection);
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
string name = reader["Name"].ToString();
string email = reader["Email"].ToString();
listBox1.Items.Add($"{name} - {email}");
}
}
}
catch (Exception ex)
{
MessageBox.Show($"خطا در اتصال به دیتابیس: {ex.Message}");
}
}
تمرین! 🧠
یه فرم بساز که شامل یه TextBox، دو تا Button ("ذخیره" و "بارگذاری")، و یه OpenFileDialog و SaveFileDialog باشه. کاری کن که کاربر بتونه متن رو در فایل ذخیره کنه و بعداً بارگذاری کنه.
جواب تمرین
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnSave_Click(object sender, EventArgs e)
{
SaveFileDialog saveDialog = new SaveFileDialog();
saveDialog.Filter = "Text Files (*.txt)|*.txt";
saveDialog.Title = "ذخیره فایل";
if (saveDialog.ShowDialog() == DialogResult.OK)
{
try
{
File.WriteAllText(saveDialog.FileName, txtContent.Text);
MessageBox.Show("فایل با موفقیت ذخیره شد!", "موفقیت",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show($"خطا در ذخیره: {ex.Message}", "خطا",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
private void btnLoad_Click(object sender, EventArgs e)
{
OpenFileDialog openDialog = new OpenFileDialog();
openDialog.Filter = "Text Files (*.txt)|*.txt";
openDialog.Title = "انتخاب فایل";
if (openDialog.ShowDialog() == DialogResult.OK)
{
try
{
txtContent.Text = File.ReadAllText(openDialog.FileName);
MessageBox.Show("فایل با موفقیت بارگذاری شد!", "موفقیت",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show($"خطا در بارگذاری: {ex.Message}", "خطا",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}