قبل از کد نویسی باید چند کنترل دیگر به برنامه اضافه کنیم
کنترل Panel | |
مقدار |
نام خصوصیت |
pnlSearch |
Name |
128, 128, 255 |
Back Color |
False |
Visible |
25,226 |
Location |
419,152 |
Size |
کنترل TextBox | |
مقدار |
نام خصوصیت |
txtSearch |
Name |
Tahoma 12 |
Font |
5 |
MaxLength |
58,39 |
Location |
122,27 |
Size |
کنترل Label | |
مقدار |
نام خصوصیت |
lblSearch |
Name |
Tahoma 12 |
Font |
"کد مورد نظر را وارد نمایید:" |
Text |
180,40 |
Location |
200,19 | Size |
کنترل Button | |
مقدار |
نام خصوصیت |
btnConfirmSearch |
Name |
تایید |
Text |
227,91 |
Location |
153,27 |
Size |
کنترل Button | |
مقدار |
نام خصوصیت |
btnCancelSearch |
Name |
انصراف |
Text |
43,91 |
Location |
153,27 |
Size |
کدنویسی روالهای رویداد
1- روی دکمه "اولین" در صفحه فرم Double Click کرده تا پنجره کدنویسی متد رویداد click آن باز شود. دستورات را در آن می نویسیم:
private void btnFirst_Click(object sender, EventArgs e)
{
if (recCount == 0) return; // اگر هیچ رکوردی نبود خارج شود
// متغیر رکوردجاری با اولین شماره رکورد مقداردهی شود
recNo = 0;
FillTextBox(); // نمایش رکورد جاری
}
2- روی دکمه "قبلی" در صفحه فرم Double Click کرده تا پنجره کدنویسی متد رویداد click آن باز شود. دستورات را در آن می نویسیم:
private void btnPrevious_Click(object sender, EventArgs e)
{
if (recNo > 0)
{
recNo--; // شماره رکوردجاری را یک واحد کاهش دهد
FillTextBox(); // نمایش رکورد جاری
}
}
3- روی دکمه "بعدی" در صفحه فرم Double Click کرده تا پنجره کدنویسی متد رویداد click آن باز شود. دستورات را در آن می نویسیم:
private void btnNext_Click(object sender, EventArgs e)
{
recNo++; // یک واحد به شماره رکورد جاری اضافه می کنیم
// اگر شماره رکورد جاری از تعداد رکوردها کمتر بود
if (recNo < recCount)
FillTextBox(); // نمایش رکورد جاری
else
recNo--; // یک واحد به شماره رکورد جاری کم می کنیم
}
4- روی دکمه "آخرین" در صفحه فرم Double Click کرده تا پنجره کدنویسی متد رویداد click آن باز شود. دستورات را در آن می نویسیم:
private void btnLast_Click(object sender, EventArgs e)
{
recNo=recCount;
// به دلیل اینکه رکوردها از صفر شماره گذاری می شود شماره آخرین رکورد یکی کمتر از تعداد رکوردها خواهد بود
recNo--;
if (recNo>=0) // آخرین رکورد اگر رکوردی بود
FillTextBox(); // نمایش رکورد جاری
}
5- روی دکمه "اضافه" در صفحه فرم Double Click کرده تا پنجره کدنویسی متد رویداد click آن باز شود. دستورات را در آن می نویسیم:
private void btnAdd_Click(object sender, EventArgs e)
{
txtId.Text = ""; //textbox خالی کردن
txtFname.Text = "";
txtLname.Text = "";
flagAdd = true; // مشخض می کند که دکمه اضافه کلیک شده است
flagEdit = false;
//نمایش دکمه های دخیره و انصراف و مخفی کردن سایر دکمه ها
showButton(true);
txtFname.Focus(); // انتقال مکان نما به کادر متن
}
6- روی دکمه "ویرایش" در صفحه فرم Double Click کرده تا پنجره کدنویسی متد رویداد click آن باز شود. دستورات را در آن می نویسیم:
private void btnEdit_Click(object sender, EventArgs e)
{
flagAdd = false;
flagEdit = true;
showButton(true);
txtFname.Focus();
}
7- روی دکمه "انصراف" در صفحه فرم Double Click کرده تا پنجره کدنویسی متد رویداد click آن باز شود. دستورات را در آن می نویسیم:
private void btnCancel_Click(object sender, EventArgs e)
{
flagAdd = false;
flagEdit = false;
// مخفی کردن دکمه های ذخیره و انصراف و نمایش سایر دکمه ها
showButton(false);
if (recCount > 0) // اگر رکوردی بود
FillTextBox(); // نمایش رکورد جاری
}
8- روی دکمه "حذف" در صفحه فرم Double Click کرده تا پنجره کدنویسی متد رویداد click آن باز شود. دستورات را در آن می نویسیم:
private void btnDelete_Click(object sender, EventArgs e)
{
DialogResult a = MessageBox.Show("آیا می خواهید حذف کنید"
, "حذف رکورد جاری", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2);
if(a==DialogResult.Yes)
{
// Sql تعریف متغیر برای نگهداری دستورات
string sqlStatement = "delete from baseinfo where Id="+ txtId.Text ;
// تعریف شی و تخصیص حافظه به شئ و تنظیم آن
OleDbCommand cmd2 = new OleDbCommand(sqlStatement, conn1);
conn1.Open(); // بازکردن اتصال
int exe=cmd2.ExecuteNonQuery(); // اجرای دستور
conn1.Close();
if(exe<0)
{
MessageBox.Show("رکورد حذف نشد","کاربرمحترم" ,MessageBoxButtons.OK ,MessageBoxIcon.Error );
return;
}
ds.Clear(); // پاک کردن اطلاعات شئ دیتاست
// da1 کپی اطلاعات از بانک اطلاعاتی به دیتاست با از طریق شی
da1.Fill(ds, "baseInfo");
// تعداد کل رکوردها در متغیر ذخیره می شود
recCount = ds.Tables["baseInfo"].Rows.Count;
// اگر رکورد حذفی آخرین بود رویداد کلیک آخرین رکورد اجرا شود
if (recNo >= recCount) btnLast.PerformClick();
if(recCount>0) // اگر رکوردی بود
FillTextBox(); // رکورد جاری نمایش دهد
}
}
کدها:
با دکمه F7 به بخش کد نویسی رفته بعد از متد public frmBaseInfo یک متد به نام showButton جهت نمایش و عدم نمایش دکمه ها در زمان های مختلف اجرا با کد زیر می نویسیم:
private void showButton(bool flag)
{
txtFname.Enabled = flag; // فعال یا غیر فعال کردن کادر متن جهت دریافت اطلاعات
txtLname.Enabled = flag; // فعال یا غیر فعال کردن کادر متن جهت دریافت اطلاعات
pnlInsertEditSearchDelete.Visible = !flag; // نمایش یا عدم نمایش دکمه های درج و .
pnlMoveButton.Visible = !flag; // نمایش یا عدم نمایش دکمه های حرکت رکردها
pnlSaveCancel.Visible = flag; // نمایش یا عدم نمایش دکمه های ذخیره و انصراف
}
جهت تست متد showButton ، متد frmBaseInfo به شکل زیر تغییر می دهیم:
public frmBaseInfo()
{
InitializeComponent();
pnlSaveCancel.Left=166; // انتقال کادر دکمه های ذخیره و انصراف
pnlSaveCancel.Top= 162;
// مخفی کردن دکمه های ذخیره و انصراف و نمایش سایر دکمه ها با فراخوانی متد
showButton(false);
}
جهت استفاده از کلاس های OleDb با دستور using System.Data.OleDb فضای نامی مربوطه را در بخش using ها اضافه می نماییم.
برای نمایش تمامی رکوردها چند متغیر سراسری در سطح فرم و چند متد باید نعریف کنیم توجه متغیر ها باید در بیرون از همه متدها و در کلاس فرم باشد مانند مثال:
public partial class frmBaseInfo : Form
{
/* در مسیر فایل اجرایی پروزه کیی شود مانند مثال Tel.mdb توجه فایل
D:\TelePhone\TelePhone\bin\Debug */
string strConnection = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=tel.mdb";
OleDbConnection conn1; // تعریف شئ برای اتصال به بانک
OleDbCommand cmd1; // تعریف شی برای اجرای دستورات
OleDbDataAdapter da1; // تعریف شی برای ایجاد ارتباط بین بانک اطلاعاتی و دیتاست
DataSet ds; // تعریف شی دیتاست
int recNo = 0; // تعریف متغیر برای نگهداری شماره رکورد جاری
int recCount=0; // تعریف متغیر برای نگهداری نعداد رکوردهای جدول
bool flagAdd = false, flagEdit = false;
// تعریف دو متغیر برای اینکه بدانیم کاربر کدام دکمه ها را انتخاب کرده است
یک پروزه جدید در محیط vs ایجاد کنید
499, 481 |
size |
Tahoma Bold 10 |
Font |
frmBaseInfo |
Name |
Yes |
RightToLeft |
CenterScreen |
StartPosition |
فرم مشخصات افراد |
Text |
کنترل Panel | |
مقدار |
نام خصوصیت |
pnlBaseInfo |
Name |
192, 255, 192 |
Back Color |
Fixed3D |
Border Style |
12,12 |
Location |
462,208 |
Size |
کنترل Panel | |
مقدار |
نام خصوصیت |
pnlInsertEditSearchDelete |
Name |
255, 224, 192 |
Back Color |
Fixed3D |
Border Style |
41,3 |
Location |
283,40 |
Size |
کنترل Button | |
مقدار |
نام خصوصیت |
btnAdd |
Name |
اضافه |
Text |
207,6 |
Location |
65,27 |
Size |
کنترل Button | |
مقدار |
نام خصوصیت |
btnEdit |
Name |
ویرایش |
Text |
141,6 |
Location |
65,27 |
Size |
کنترل Button | |
مقدار |
نام خصوصیت |
btnSearch |
Name |
جستجو |
Text |
75,6 |
Location |
65,27 |
Size |
کنترل Button | |
مقدار |
نام خصوصیت |
btnDelete |
Name |
حذف |
Text |
9,6 |
Location |
65,27 |
Size |
کنترل Panel | |
مقدار |
نام خصوصیت |
pnlSaveCancel |
Name |
255, 192, 255 |
Back Color |
Fixed3D |
Border Style |
41,47 |
Location |
152,38 |
Size |
کنترل Button | |
مقدار |
نام خصوصیت |
btnSave |
Name |
ذخیره |
Text |
78,5 |
Location |
65,27 |
Size |
کنترل Button | |
مقدار |
نام خصوصیت |
btnCancel |
Name |
انصراف |
Text |
7,5 |
Location |
65,27 |
Size |
کنترل Panel |
|
مقدار |
نام خصوصیت |
pnlMoveButton |
Name |
مشخصات1. شروع 2. W , L را بخوان 3. Perimeter = (W + L)*2 4. Area = W * L 5. Area, Perimeter را چاپ کن 6. پایان
0 1-شروع: الف) یک پروژه #C از نوع کنسول در محیط VS ایجاد می کنیم.
ب) تمام متغیر هایی که در الگوریتم استفاده کرده ایم را در متد Main به شکل زیر تعریف می کنیم.
static void Main(string[] args) { // تعریف متغیر های صحیح برای نگهداری مقادیر int w, l, Perimeter, Area; } تبدیل سایر خطوط الگوریتم: static void Main(string[] args) { int w, l, Perimeter, Area; // ----------------------------------------------------------------------------------- را بخوان W , L (2 // نمایش پیام برای دریافت طول Console.Write("Please enter a number for length:"); w = int.Parse(Console.ReadLine()); // نمایش پیام برای دریافت عرض Console.Write("Please enter a number for width:"); l = int.Parse(Console.ReadLine()); // --------------------------------------------------------------------------- Perimeter = (W + L)*2 (3 // محاسبه محیط Perimeter = (w + l) * 2; // -------------------------------------------------------------------------------------- Area = W * L (4 // محاسبه مساحت Area = w * l; // ------------------------------------------------------------------------ را چاپ کن Perimeter , Area (5 Console.WriteLine("Perimeter is:{0}", Perimeter); Console.WriteLine("Area is:{0}", Area); //---------------------------------------------------------------------------------------------------------پایان (6 } مشخصات
|
درباره این سایت