ghasem110deh
|
ارتباط دو کمبوباکس
سلام به همه ...
این کد که واسه فرستادن اطلاعات یه فیلد از جدول توی کمبوباکس :
کد:
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=Pooya;Integrated Security=True"); SqlCommand com = new SqlCommand();
DataTable table = new DataTable();
string sql = "Select DISTINCT Cam from Tcam"; //DISTINCT جهت جلوگیری از نمایش مقدار تکراری
con.Open();
SqlDataAdapter da = new SqlDataAdapter(sql, con);
da.Fill(table);
table.Rows.Add("");
comboBox1.DataSource = table;
comboBox1.DisplayMember = "Cam";
comboBox1.ValueMember = "Cam";
comboBox1.SelectedValue = "";
حالا چطور میشه کمبوباکس دوم رو به این مرتبط کرد ؟
در واقع توی جدول یه ستون دوربین هست ، و در ستون بعدی مدل دوربین ...
میخوام وقتی توی کمبوباکس اول دوربین انتخاب شد ، توی کمبوباکس دوم فقط مدل های اون دوربین نمایش داده بشن !
نمیدونم منظورم رو رسوندم یا نه !
امضای کاربر :
حضرت علی علیه السلام :
ذکات علم نشر آن است !
|
|
یکشنبه 21 دی 1393 - 17:34 |
|
farnaz1371
ارسالها: | 31 |
عضویت: | 4 /4 /1393 |
تشکر ها: | 68 |
تشکر شده: | 17 |
|
ارتباط دو کمبوباکس
سلام
اگه از دستورات ADO استفاده میکنین میتونید از شرط where استفاده کنین به این شکل :
کد:
string sql = "Select DISTINCT Cam from Tcam Where Model='" + comboBox2.SelectedItem + "'"
البته باید اون کامبو باکس رو هم از مدل ها پر کنین.
|
|
یکشنبه 21 دی 1393 - 17:46 |
|
ghasem110deh
|
ارتباط دو کمبوباکس
نقل قول از farnaz1371
سلام
اگه از دستورات ADO استفاده میکنین میتونید از شرط where استفاده کنین به این شکل :
کد:
string sql = "Select DISTINCT Cam from Tcam Where Model='" + comboBox2.SelectedItem + "'"
البته باید اون کامبو باکس رو هم از مدل ها پر کنین. سلام و ممنون ...
تو چه رویدادی بنویسم ؟
چون تا الان تو لود_فرم بود ولی الان چون باید با توجه به مقدار کمبوباکس1 باشه ، هیچی نشون نمیده !!!
|
|
یکشنبه 21 دی 1393 - 19:01 |
|
farnaz1371
ارسالها: | 31 |
عضویت: | 4 /4 /1393 |
تشکر ها: | 68 |
تشکر شده: | 17 |
|
ارتباط دو کمبوباکس
نقل قول از ghasem110deh
سلام و ممنون ...
تو چه رویدادی بنویسم ؟
چون تا الان تو لود_فرم بود ولی الان چون باید با توجه به مقدار کمبوباکس1 باشه ، هیچی نشون نمیده !!!
هر جا میخواید دو کامبو باکس ارتباط داده بشن...
|
|
یکشنبه 21 دی 1393 - 19:13 |
|
ghasem110deh
|
ارتباط دو کمبوباکس
الان توی selected IndexChanged کمبوباکس یک نوشتم ولی هیچی تو کمبو2 نشون نمیده !!!
چون با توجه به انتخاب کمبو یک باید باشه ...
اینجوری نوشتم :
کد:
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=Pooya;Integrated Security=True");
SqlCommand com = new SqlCommand();
DataTable table = new DataTable(); //
string sql = "Select DISTINCT Mod from Tcam"; //جلوگیری از مقدار تکراری
string sql = "Select DISTINCT Mod from Tcam Where Cam='" + comboBox1.SelectedItem + "'";
con.Open();
SqlDataAdapter da = new SqlDataAdapter(sql, con);
da.Fill(table);
table.Rows.Add("");
comboBox2.DataSource = table;
comboBox2.DisplayMember = "Mod";
comboBox2.ValueMember = "Mod";
comboBox2.SelectedValue = "";
|
|
یکشنبه 21 دی 1393 - 19:19 |
|
farnaz1371
ارسالها: | 31 |
عضویت: | 4 /4 /1393 |
تشکر ها: | 68 |
تشکر شده: | 17 |
|
ارتباط دو کمبوباکس
کامبو باکس 1 مربوط به انتخاب مدله ؟
اگه میشه سورس بذارید براتون درست کنم //
|
|
یکشنبه 21 دی 1393 - 19:46 |
|
ghasem110deh
|
ارتباط دو کمبوباکس
تو کمبوباکس1 دوربین رو انتخاب میکنی ...
تو کمبوباکس2 مدل رو !
پروژه حجمش 24 مگه ... خیلی طول میکشه آپ کنم !
این بایندکمبو که تو لود-فرم صدا میزنم :
کد:
private void bindCombo()
{
try
{
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=Pooya;Integrated Security=True");
SqlCommand com = new SqlCommand();
DataTable table = new DataTable();
string sql = "Select DISTINCT Cam from Tcam"; //DISTINCT جهت جلوگیری از نمایش مقدار تکراری
con.Open();
SqlDataAdapter da = new SqlDataAdapter(sql, con);
da.Fill(table);
table.Rows.Add("");
comboBox1.DataSource = table;
comboBox1.DisplayMember = "Cam";
comboBox1.ValueMember = "Cam";
comboBox1.SelectedValue = "";
}
catch
{
MessageBox.Show("عدم خواندن اطلاعات از جدول نام تجاری دوربین", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
private void bindCombo2()
{
// try
// {
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=Pooya;Integrated Security=True");
SqlCommand com = new SqlCommand();
DataTable table = new DataTable();
// string sql = "Select DISTINCT Mod from Tcam"; //جلوگیری از مقدار تکراری
string sql = "Select DISTINCT Mod from Tcam Where Cam='" + comboBox1.SelectedItem + "'";
con.Open();
SqlDataAdapter da = new SqlDataAdapter(sql, con);
da.Fill(table);
table.Rows.Add("");
comboBox2.DataSource = table;
comboBox2.DisplayMember = "Mod";
comboBox2.ValueMember = "Mod";
comboBox2.SelectedValue = "";
// }
// catch
// {
// MessageBox.Show("عدم خواندن اطلاعات از جدول نام تجاری دوربین", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
// }
}
ولی کمبوباکس دو خالیه !
|
|
یکشنبه 21 دی 1393 - 19:59 |
|
admin
|
ارتباط دو کمبوباکس
با سلام
کدها نامرتب است
لطفا با مرورگری به جز گوگل کروم کدها را قرار دهید تا مشکل رفع شود.
|
|
یکشنبه 21 دی 1393 - 20:05 |
|
ghasem110deh
|
|
یکشنبه 21 دی 1393 - 20:10 |
|
admin
|
ارتباط دو کمبوباکس
آیا در حال حاضر اطلاعات در کامبو باکس 1 لود میشود ؟
|
|
یکشنبه 21 دی 1393 - 20:12 |
|
ghasem110deh
|
ارتباط دو کمبوباکس
آره اطلاعات دوربین میاد ولی واس مدل خالی ، خطا هم نمیده (چون ترای کش رو غیرفعال کردم)
|
|
یکشنبه 21 دی 1393 - 20:17 |
|
admin
|
ارتباط دو کمبوباکس
نقل قول از ghasem110deh
آره اطلاعات دوربین میاد ولی واس مدل خالی ، خطا هم نمیده (چون ترای کش رو غیرفعال کردم)
به احتمال قوی علت اش این هست که رکوردی با این مدل در جدول وجود ندارد.
حالا ممکنه در نوشتار این دستور مشکلاتی وجود داشته باشد.
|
|
یکشنبه 21 دی 1393 - 20:19 |
|
ghasem110deh
|
ارتباط دو کمبوباکس
این خط رو که حذف کنم :
کد:
string sql = "Select DISTINCT Mod from Tcam Where Cam='" + comboBox1.SelectedItem + "'";
با کد قبلی مدل رو هم میاره :
کد:
string sql = "Select DISTINCT Mod from Tcam";
ولی تمام مدل های جدول مدل رو میاره دیگه ... با دوربین انتخاب شده کاری نداره !
|
|
یکشنبه 21 دی 1393 - 20:34 |
|
admin
|
ارتباط دو کمبوباکس
مگر DISTINCT برای دوربین نیست ؟
برای مدل حتما یک فیلد دیگر قرار داده اید بنابر این باید آن را بر مبنای دوربین Select کنید.
|
|
یکشنبه 21 دی 1393 - 20:43 |
|
ghasem110deh
|
ارتباط دو کمبوباکس
نقل قول از admin
مگر DISTINCT برای دوربین نیست ؟
برای مدل حتما یک فیلد دیگر قرار داده اید بنابر این باید آن را بر مبنای دوربین Select کنید.
نگرفتم چی شد !
DISTINCT رو واسه هر دوتا گذاشتم ... چون هر دو فیلد مورد تکراری دارن
|
|
یکشنبه 21 دی 1393 - 20:51 |
|
admin
|
ارتباط دو کمبوباکس
نقل قول از ghasem110deh
نگرفتم چی شد !
DISTINCT رو واسه هر دوتا گذاشتم ... چون هر دو فیلد مورد تکراری دارن
درسته من اشتباه فهمیدم.
به جای ComboBox1.SelectedItem شما یک مارک دوربین موجود رو بنویسید و ببینید آیا اینبار لود میکند ؟
|
|
یکشنبه 21 دی 1393 - 20:57 |
|
ghasem110deh
|
ارتباط دو کمبوباکس
نه !
اسم یه دوربین رو داخل "" نوشتم ولی بازم چیزی نشون نداد ... نمی دونم کجاش میلنگه ؟
.
.
.
ولی به نظرم باید کدها رو تو selected IndexChanged بنویسیم ، چون محتویات کمبوباکس 2 که مدل هست با با توجه به کمبوباکس 1 که دوربین نمایش داده بشه !
یا اشتباه میگم ؟!
|
|
یکشنبه 21 دی 1393 - 21:09 |
|
admin
|
ارتباط دو کمبوباکس
نه دقیقا درسته ، مگه تا به حال در این رویداد نمینوشتید ؟
|
|
یکشنبه 21 دی 1393 - 21:13 |
|
ghasem110deh
|
ارتباط دو کمبوباکس
آره ... ولی قبلا تو موقع لود-فرم کل دوربین ها بجز تکراری ها رو از جدول میخوند و در کمبو1 و کل مدل هار بجز تکراری ها رو توی کمبو2 نشون میداد ...
بنظرم الان :
الان کمبوباکس2 (مدل) نسبت به دوربین انتخاب شده تو کمبوباکس1 ، پر شه !؟
|
|
یکشنبه 21 دی 1393 - 21:28 |
|
admin
|
ارتباط دو کمبوباکس
نقل قول از ghasem110deh
آره ... ولی قبلا تو موقع لود-فرم کل دوربین ها بجز تکراری ها رو از جدول میخوند و در کمبو1 و کل مدل هار بجز تکراری ها رو توی کمبو2 نشون میداد ...
بنظرم الان :
الان کمبوباکس2 (مدل) نسبت به دوربین انتخاب شده تو کمبوباکس1 ، پر شه !؟
بله ببینید کدهای bincombo2 رو از اونجا بردارید و در رویداد Selected Index Chnaged کامبو باکس مربوط به نام دوربین قرار بدید.
|
|
یکشنبه 21 دی 1393 - 21:32 |
|
ghasem110deh
|
ارتباط دو کمبوباکس
بازم هیچی نشون نمیده ... ولی خطا هم نمیده !
کد:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=Pooya;Integrated Security=True");
SqlCommand com = new SqlCommand();
DataTable table = new DataTable();
// string sql = "Select DISTINCT Mod from Tcam"; //جلوگیری از مقدار تکراری
string sql = "Select DISTINCT Mod from Tcam Where Cam='" + comboBox1.SelectedItem + "'";
con.Open();
SqlDataAdapter da = new SqlDataAdapter(sql, con);
da.Fill(table);
table.Rows.Add("");
comboBox2.DataSource = table;
comboBox2.DisplayMember = "Mod";
comboBox2.ValueMember = "Mod";
comboBox2.SelectedValue = "";
}
|
|
یکشنبه 21 دی 1393 - 22:08 |
|
admin
|
ارتباط دو کمبوباکس
الان دوباره به جای ComboBox1.SelectedItem یک مارک دوربین موجود رو بنویسید و ببینید آیا اینبار لود میکند ؟
|
|
یکشنبه 21 دی 1393 - 23:30 |
|
ghasem110deh
|
|
دوشنبه 22 دی 1393 - 17:10 |
|
admin
|
ارتباط دو کمبوباکس
نقل قول از ghasem110deh
بازم هیچی نشون نداد ...
همون بخش از سورس رو آپلود کنید ، راستش خیلی سخته بشه فهمید مشکل چیه بدون سورس !
|
|
دوشنبه 22 دی 1393 - 17:52 |
|
ghasem110deh
|
ارتباط دو کمبوباکس
کل برنامه رو آپ کردم ...
یه جا دیگه هم پرسیدم گفتن بجای comboBox1.selectedItems بنویس comboBox1.Text ولی باز هیچی نشون میده !
(البته الان همون کمبوهای قبلی رو داره)
http://s4.picofile.com/file/8162990576/Pooya_Setup.rar.html
پسورد : حمیدرضا (فارسی - بدون فاصله)
تو دو تا فرم خرید و فروش این دوتا کمبوباکس هستش ...
|
|
دوشنبه 22 دی 1393 - 18:00 |
|
admin
|
ارتباط دو کمبوباکس
سورس رو نگاه میکنم و بهتون خبر میدم ...
|
|
دوشنبه 22 دی 1393 - 18:13 |
|