PDA

View Full Version : سوال: متد ارسال مقادیر فیلد جدول درون combobox



firoozi90
یک شنبه 29 مرداد 1391, 09:43 صبح
سلام دوستان
من برای ارسال مقادیر فیلد جدول درون کمبو باکس از کد زیر استفاده می کنم

string cnString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\SELLPC.mdf;Integrated Security=True;User Instance=True";
SqlConnection cn = new SqlConnection(cnString);
cn.Open();
SqlDataAdapter da = new SqlDataAdapter("", cn);
DataSet ds = new DataSet();
da.SelectCommand.CommandText = "select * from TBLMB ";
da.Fill(ds, "TBLMB");
comboBoxmdlmb.DataSource = ds;
comboBoxmdlmb.DisplayMember = "TBLMB.MDLMB";


در این مورد دو سوال داشتم
1- چطور می تونم این کد رو تبدیل به یه متد کنم؟در واقع متد این کد چه طوری نوشته میشه
2- اگر بخوام با استفاده از این کد مقادیر فیلد بخصوص چند جدول رو درن تکست باکس های مربوط به خودشون بریزم باید چیکار کنم؟
در واقع توی رویداد لود فرم کد رو طوری تغییر بدم که مقادیر یک فیلد دلخواه از چند جدول درون کمبوباکس های مخصوص خودشون که توی فرم گذاشتم ست بشه.
لطفا راهنماییم کنید

ali.bahrami
یک شنبه 29 مرداد 1391, 13:03 عصر
دوست عزیز شما میتونی یک متد بنویسی که مقدار بازگشتی اون از نوع dataTable و یا dataSet‌باشه .
اگر خواستی بگو کدش را برات بنویسم

firoozi90
یک شنبه 29 مرداد 1391, 17:13 عصر
دوست عزیز شما میتونی یک متد بنویسی که مقدار بازگشتی اون از نوع dataTable و یا dataSet‌باشه .
اگر خواستی بگو کدش را برات بنویسم
ممنون از راهنماییت
والا من تازه برنامه نویسی با ADO.NET رو شروع کردم.قبلا EF کار می کردم بخاطر همین میتدی هستم
اگر کدی برام بزاری که متوجه بشم ممنون میشم
واینکه چطور میتونم واسه چندتا جدول هم ازش استفاده کنم ممنون میشم

felfely
یک شنبه 29 مرداد 1391, 18:29 عصر
سلام
کدی که به وسیله دیتا تیبل میشه به اطلاعات پایگاه دسترسی داشت اینه:



public DataTable FillData()
{
string connStr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database1.mdf;Integrated Security=True;User Instance=True";
SqlConnection conn = new SqlConnection(connStr);
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter("select * from tbl", connStr);
conn.Open();
da.Fill(dt);
conn.Close();
return dt;
}



که این کد یه دیتا تیبل رو برمیگردونه و شما میتونه به عنوان مقدار به دیتاسورس یه گریدویو بدین.

همچنین اگه بخواین ازش برای مقداردهی به کومبو باکس استفاده کنین میتونین از کد زیر استفاده کنین. (با استفاده از تابع بالا)


private void button1_Click(object sender, EventArgs e)
{
comboBox1.DataSource = FillData();
comboBox1.DisplayMember = "name";
}



به حای "name" اسم ستونی از جدول رو که میخواین به کومبوباکس اتصال بدین بنویسین.

firoozi90
یک شنبه 29 مرداد 1391, 20:41 عصر
سلام
کدی که به وسیله دیتا تیبل میشه به اطلاعات پایگاه دسترسی داشت اینه:



public DataTable FillData()
{
string connStr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database1.mdf;Integrated Security=True;User Instance=True";
SqlConnection conn = new SqlConnection(connStr);
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter("select * from tbl", connStr);
conn.Open();
da.Fill(dt);
conn.Close();
return dt;
}



که این کد یه دیتا تیبل رو برمیگردونه و شما میتونه به عنوان مقدار به دیتاسورس یه گریدویو بدین.

همچنین اگه بخواین ازش برای مقداردهی به کومبو باکس استفاده کنین میتونین از کد زیر استفاده کنین. (با استفاده از تابع بالا)


private void button1_Click(object sender, EventArgs e)
{
comboBox1.DataSource = FillData();
comboBox1.DisplayMember = "name";
}



به حای "name" اسم ستونی از جدول رو که میخواین به کومبوباکس اتصال بدین بنویسین.

ممنون از توجهت
اما اگر بخوام از چند جدول استفاده کنم چی؟
8تا جدول دارم که میخوام فیلد name اونارو توی تکست باکس های مربوط به خودشون بریزم

firoozi90
دوشنبه 30 مرداد 1391, 10:55 صبح
اساتید محترم لطفا راهنمایی کنن

mousa1992
دوشنبه 30 مرداد 1391, 11:06 صبح
متد شما میتونه یک DataSet رو Return کنه که شامل 8 جدول هست و بقیه مراحل مانند قبل هست
DataSet رو تعریف میکنید و با استفاده از متد Add جدول هایی رو که از دیتابیس گرفتید به DataSet اضافه میکنید
برای استفاده از جدول ها هم از خاصیت Tables استفاده کن

masoodinfo
دوشنبه 30 مرداد 1391, 11:08 صبح
با سلام

اگر بین هر 8 جدول شما به طریقی ارتباط هست می تونی یک کوئری بنویسی و هر 8 نام رو بخونی .ولی اگر ارتباطی نیست باید دونه دونه بخونی و مقدار دهی کنی! فک کنم

firoozi90
دوشنبه 30 مرداد 1391, 11:34 صبح
متد شما میتونه یک DataSet رو Return کنه که شامل 8 جدول هست و بقیه مراحل مانند قبل هست
DataSet رو تعریف میکنید و با استفاده از متد Add جدول هایی رو که از دیتابیس گرفتید به DataSet اضافه میکنید
برای استفاده از جدول ها هم از خاصیت Tables استفاده کن

میشه یه مثال بزنید؟
متد من datatable بر میگردونه/(متد بالا)

firoozi90
دوشنبه 30 مرداد 1391, 11:35 صبح
با سلام

اگر بین هر 8 جدول شما به طریقی ارتباط هست می تونی یک کوئری بنویسی و هر 8 نام رو بخونی .ولی اگر ارتباطی نیست باید دونه دونه بخونی و مقدار دهی کنی! فک کنم

ازتباطی نیست
یعنی باید برای هر جدول یه متد بنویسم بعد دونه به دونه متدها رو فراخوانی کنم؟

mousa1992
دوشنبه 30 مرداد 1391, 11:47 صبح
DataSet ReturnTables()
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
DataTable dt2 = new DataTable();
ds.Tables.Add(dt);
ds.Tables.Add(dt2);
return ds;
}
private void Form1_Load(object sender, EventArgs e)
{
DataSet ds = ReturnTables();
comboBox1.DataSource = ds.Tables["Name Of Table Or Index"];
}


متدی به نام ReturnTables داریم که دوتا جدول رو به یک DataSet ایجاد شده اضافه میکنه و اونو return میکنه و در FormLoad از جدول ها برای ComboBox استفاده کردیم
موفق

firoozi90
دوشنبه 30 مرداد 1391, 12:54 عصر
DataSet ReturnTables()
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
DataTable dt2 = new DataTable();
ds.Tables.Add(dt);
ds.Tables.Add(dt2);
return ds;
}
private void Form1_Load(object sender, EventArgs e)
{
DataSet ds = ReturnTables();
comboBox1.DataSource = ds.Tables["Name Of Table Or Index"];
}


متدی به نام ReturnTables داریم که دوتا جدول رو به یک DataSet ایجاد شده اضافه میکنه و اونو return میکنه و در FormLoad از جدول ها برای ComboBox استفاده کردیم
موفق

ممنون از لطفت دوست عزیز
یه سوال واسه مابقی کمبو بکس ها هم باید بنویسم

comboBox2.DataSource = ds.Tables["Name Of Table2 Or Index"];
comboBox3.DataSource = ds.Tables["Name Of Table3 Or Index"];
و ....

اینجوری؟

mousa1992
دوشنبه 30 مرداد 1391, 17:46 عصر
بله باید به همین صورت عمل بشه