PDA

View Full Version : مبتدی: نوشتن تابع در سي شارپ



alasht
چهارشنبه 26 خرداد 1389, 14:12 عصر
با سلام
ببخشيد كه اين سوال رو ميكنم شايد قبلا گفته شده باشه ولي نيم ساعته دارم همه جا رو سرچ ميكنم اخر پيداش نكردم
سوالم اينه كه من چطور ميتونم يه تابع بنويسم و تو قسمتي از برنامه كه نيازش دارم فراخوني كنم ؟

مثلا من يه تابع با اين اسم ميخوام بنويسم MessageBox_Fun بعد داخل تابع اين كد رو بنويسم


MessageBox.Show("salam");
بعد مثلا يه دكمه بسازم و توش اين تابع رو فراخوني كنم و وقتي رو دكمه كليك كردم اون پيغام رو نشون بده

بعد يه سوال ديگه من يه كانكشن نوشتم



this.DB_StudentTableAdapter.Fill(this.dB_StudentDa taSet.TB_Student);
string ConStr = " Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " +
Application.StartupPath + "\\DB_Student.mdb";
OleDbConnection Connect = new OleDbConnection(ConStr);
if (Connect.State == ConnectionState.Closed)
{
Connect.Open();
}
string COMMANDTEXT = " select TB_Student.*,TB_Madarak.Madrak_Name," +
"(TB_Student_Fname+''+TB_Student.Student_Lname) as Fullname" +
" From TB_Student,TB_Madrak" +
" WHERE TB_Madrak.Madrak_ID = TB_Student.Madrak_ID";
OleDbDataAdapter DAStudent = new OleDbDataAdapter(COMMANDTEXT, Connect);

DataSet DSStudent = new DataSet();
DAStudent.Fill(DSStudent, "student");

Dtg_St.AutoGenerateColumns = false;
Dtg_St.DataSource = DSStudent.Tables["Student"];

بعد از اين قسمت ايراد ميگيره يعني ارور ميده

DB_StudentTableAdapter.Fill
به خاطر چيه ؟


با تشكر:قلب:

naser2009
چهارشنبه 26 خرداد 1389, 14:38 عصر
سلام دوسته من
نوشتن تابع کاری نداره :لبخندساده:


publicpartialclassForm1 : Form
{
public Form1()
{
InitializeComponent();
}
private void MyFunction()
{
MessageBox.Show("Hello My Friend");
}
privatevoid button1_Click(object sender, EventArgs e)
{
MyFunction();
}
}

در ضمن واسه قسمت دوم هم کد رو با f10 و f11 تریس(trace) کن ببین خطاش دقیقا چیه؟

epsi1on
چهارشنبه 26 خرداد 1389, 15:22 عصر
با سلام
ببخشيد كه اين سوال رو ميكنم شايد قبلا گفته شده باشه ولي نيم ساعته دارم همه جا رو سرچ ميكنم اخر پيداش نكردم
سوالم اينه كه من چطور ميتونم يه تابع بنويسم و تو قسمتي از برنامه كه نيازش دارم فراخوني كنم ؟

مثلا من يه تابع با اين اسم ميخوام بنويسم MessageBox_Fun بعد داخل تابع اين كد رو بنويسم


MessageBox.Show("salam");
بعد مثلا يه دكمه بسازم و توش اين تابع رو فراخوني كنم و وقتي رو دكمه كليك كردم اون پيغام رو نشون بده

منظورتون رو دقیقا متوجه نشدم ولی اگر با برنامه نویسی شی گرا آشنا باشید میدونید که این رو باید در غالب متد یک کلاس پیاده سازی کنید.
پیشنهاد میکنم برای این کارها یک کلاس استاتیک ایجاد کنید و متد استاتیک مورد نظرتون رو درش پیاده کنید:



public static class Util
{

public static void MessageBox_Fun()
{
MessageBox.Show("Hello My Friend");
}
}برای این کار از Solution Explorer روی پروژه جاریتون راست کلیک کنید، از منوی Add گزینه Class رو انتخاب کنید. در صفحهای که میاد فیلد Name رو از این چیزی که شبیه به Class1.cs هست به Util.cs تغییر بدید. بعد از دیلیت کردن کدهایی که روی صفحه ای که روی مانیتور باز شده اومده، این کد ها رو درش Past کنید:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

public static class Util
{

public static void MessageBox_Fun()
{
MessageBox.Show("Hello My Friend");
}

}
حالا توی سایر قسمتهای برنامه میتونید با این کد، متد یا بقولی تابع مورد نظرتون رو فراخوانی کنید:

Util.MessageBox_Fun()