یادگیری C# (بررسی سئوالات و مشکلات)

hkyan

عضو جدید
فرقی نداره که شما از دیتا گرید انتخاب کنید یا از کامبوباکس ، یکسری کد ساده هست که باید بنویسید

اما اشتباه شما اینکه میخواهید مقدار رو در کامبوباکس به صورت دستی تایپ کنید برای این کار برنامه نویسان محترم دات نت تکست باکس رو ساخته اند به نظر من که نوشتن در کامبو باکس کار اشتباه و بی معنی هست

کامبوباکس برای اینکه شما ایتمی از بین ایتم های داده شده انتخاب و از داده های ان استفاده کنید نه که متنی در اون تایپ کنید

به هر صورت اگر در قسمت کد نویسی مشکلی داشتید کد مورد نظر یا برنامه رو اینجا قرار دهید تا بنده و دوستان شما رو راهنمائی کنیم

موفق باشید
با تشکر
برنامه ای که دارم می نویسم شامل دیتابیسی که حاوی بیش از 200000 رکورد هست برای همین مجبورم برای سرچ از حالت های مختلفی استفاده کنم
معمولا برای حالت هایی که دیتاگرید ویو شامل ردیف های زیادی است یکی از سرچ های که استفاده میشه سرچ در کمبو باکس هستش من زیاد این روش را دیدم
فرض کنید دیتاگرید ویو شامل 100000 نام خانوادگی هستش و مثلا شما میخواهید نام خانوادگی محمدی را سرچ کنید که حداقل 50 نام خانوادگی محمدی دارید با وارد کردن نام محمدی در کمبوباکس علاوه بر سورت شدن بر اساس اون میتونید تمام اونها را ببنید و بین آیتمها حرکت کنید و بعد با انتخاب یکی از اونها ردیف اون نیز در دیتاگریدویو سلکت بشه. این روش زیاد استفاده میشه.
حالا اگه راه حل بهتری داری یا اینکه تو نوشتن همین روش بتونی کمکم کنی ممنون میشم
 

جفنگ نگو

عضو جدید
با تشکر
برنامه ای که دارم می نویسم شامل دیتابیسی که حاوی بیش از 200000 رکورد هست برای همین مجبورم برای سرچ از حالت های مختلفی استفاده کنم
معمولا برای حالت هایی که دیتاگرید ویو شامل ردیف های زیادی است یکی از سرچ های که استفاده میشه سرچ در کمبو باکس هستش من زیاد این روش را دیدم
فرض کنید دیتاگرید ویو شامل 100000 نام خانوادگی هستش و مثلا شما میخواهید نام خانوادگی محمدی را سرچ کنید که حداقل 50 نام خانوادگی محمدی دارید با وارد کردن نام محمدی در کمبوباکس علاوه بر سورت شدن بر اساس اون میتونید تمام اونها را ببنید و بین آیتمها حرکت کنید و بعد با انتخاب یکی از اونها ردیف اون نیز در دیتاگریدویو سلکت بشه. این روش زیاد استفاده میشه.
حالا اگه راه حل بهتری داری یا اینکه تو نوشتن همین روش بتونی کمکم کنی ممنون میشم

اجازه بدید امشب مهمان داریم فردا براتون یکسری کد میزنم ، تست کنید شاید راه گشا بود
 

جفنگ نگو

عضو جدید
برنامه ای که دارم می نویسم شامل دیتابیسی که حاوی بیش از 200000 رکورد هست برای همین مجبورم برای سرچ از حالت های مختلفی استفاده کنم

مثلا چه حالت هایی ؟

معمولا برای حالت هایی که دیتاگرید ویو شامل ردیف های زیادی است یکی از سرچ های که استفاده میشه سرچ در کمبو باکس هستش من زیاد این روش را دیدم

من هم زیاد دیدم که از کامبو باکس برای سرچ استفاده شود اما جایی ندیدم که از کامبو باکس برای تایپ کلمه ای که قرار است سرچ شود استفاده کنند

فرض کنید دیتاگرید ویو شامل 100000 نام خانوادگی هستش و مثلا شما میخواهید نام خانوادگی محمدی را سرچ کنید که حداقل 50 نام خانوادگی محمدی دارید با وارد کردن نام محمدی در کمبوباکس علاوه بر سورت شدن بر اساس اون میتونید تمام اونها را ببنید و بین آیتمها حرکت کنید و بعد با انتخاب یکی از اونها ردیف اون نیز در دیتاگریدویو سلکت بشه. این روش زیاد استفاده میشه.
حالا اگه راه حل بهتری داری یا اینکه تو نوشتن همین روش بتونی کمکم کنی ممنون میشم

ببین دوست عزیز من همه حالته میتونم کمکت کنم اما شما داری راه رو اشتباه میری

اگر میخواهی از کامبوباکس استفاده کنی باید گزینه هات مشخص باشه اما اگر میخواهی چیزی تایپ کنی باید از تکست باکس استفاده کنید

حالا شما هرجور که راحتی اما روش کلی اینه که خدمت شما عرض میکنم

در ابتدا شما کل داده ها رو در دیتاگرید اضافه میکنید

اگر روی یک فیلدی که یکتا است سرچ انجام شود کار شما راحت تر خواهد بود به این دلیل که یا رکوردی وجود ندارد یا فقط و فقط یک رکورد با این مشخصات خواهد بود

در این روش شما روی خود دیتا گرید سچ رو انجام میدهید که در چند پست قبل تر کد اون رو براتون نوشتم

اما اگر شما قرار است فیلدی رو سرچ کنید که یکتا نیست یعنی 50 تا اسم محمدی داریم

اینجاست که شما باید یک query بنویسید و داده ها رو دوباره از بانک اطلاعاتی به دیتاگرید انتقال دهید و سپس به صورت چشمی یا همون دستی به دنبال رکورد مورد نظر خود بگردید

با این تفاسیر شما هستید که نحوه سرچ رو باید انتخاب کنید هرکدام که مورد پسند بود رو انتخاب و کد لازم رو بنویسید در هر مرحله ای که به مشکل برخوردید کد و توضیحات لازم رو بدهید تا دوستان شما رو راهنمائی کنند
 

hkyan

عضو جدید
مثلا چه حالت هایی ؟



من هم زیاد دیدم که از کامبو باکس برای سرچ استفاده شود اما جایی ندیدم که از کامبو باکس برای تایپ کلمه ای که قرار است سرچ شود استفاده کنند



ببین دوست عزیز من همه حالته میتونم کمکت کنم اما شما داری راه رو اشتباه میری

اگر میخواهی از کامبوباکس استفاده کنی باید گزینه هات مشخص باشه اما اگر میخواهی چیزی تایپ کنی باید از تکست باکس استفاده کنید

حالا شما هرجور که راحتی اما روش کلی اینه که خدمت شما عرض میکنم

در ابتدا شما کل داده ها رو در دیتاگرید اضافه میکنید

اگر روی یک فیلدی که یکتا است سرچ انجام شود کار شما راحت تر خواهد بود به این دلیل که یا رکوردی وجود ندارد یا فقط و فقط یک رکورد با این مشخصات خواهد بود

در این روش شما روی خود دیتا گرید سچ رو انجام میدهید که در چند پست قبل تر کد اون رو براتون نوشتم

اما اگر شما قرار است فیلدی رو سرچ کنید که یکتا نیست یعنی 50 تا اسم محمدی داریم

اینجاست که شما باید یک query بنویسید و داده ها رو دوباره از بانک اطلاعاتی به دیتاگرید انتقال دهید و سپس به صورت چشمی یا همون دستی به دنبال رکورد مورد نظر خود بگردید

با این تفاسیر شما هستید که نحوه سرچ رو باید انتخاب کنید هرکدام که مورد پسند بود رو انتخاب و کد لازم رو بنویسید در هر مرحله ای که به مشکل برخوردید کد و توضیحات لازم رو بدهید تا دوستان شما رو راهنمائی کنند
با سلام
یه سرچ روی فیلد کلید نوشتم
برای مورد دوم که میگید query بزن تو اون حالت دیتا گرید ویو فقط نتیجه query را بازمیگردونه
من میخوام کلیه داده هام تو دیتاگریدویو باشه به علاوه اینکه مثلا 50 تا اسم هم سورت شده تو دیتا گرید ویو نشون داده بشه که بتونم روشون حرکت کنم
نمیدونم تونستم منظورم را برسونم یا نه.یه سمپل از اون چیزی را که میخوام ضمیمه کردم.
با تشکر
 

پیوست ها

  • Sample.jpg
    Sample.jpg
    31.4 کیلوبایت · بازدیدها: 0
آخرین ویرایش:

جفنگ نگو

عضو جدید
با سلام
یه سرچ روی فیلد کلید نوشتم
برای مورد دوم که میگید query بزن تو اون حالت دیتا گرید ویو فقط نتیجه query را بازمیگردونه
من میخوام کلیه داده هام تو دیتاگریدویو باشه به علاوه اینکه مثلا 50 تا اسم هم سورت شده تو دیتا گرید ویو نشون داده بشه که بتونم روشون حرکت کنم
نمیدونم تونستم منظورم را برسونم یا نه.یه سمپل از اون چیزی را که میخوام ضمیمه کردم.
با تشکر
سلام

این عکسی که شما نشان داده اید حالتی به نام auto complete که کامبوباکس یا تکست باکس یا . . . . به دیتابیس متصل است

و از همان حالت دوم سرچ که خدمتتان عرض کردم استفاده میکند

اگر با این روش اشنایی ندارید بفرمائید تا راهنمائی کنم
 

hkyan

عضو جدید
سلام

این عکسی که شما نشان داده اید حالتی به نام auto complete که کامبوباکس یا تکست باکس یا . . . . به دیتابیس متصل است

و از همان حالت دوم سرچ که خدمتتان عرض کردم استفاده میکند

اگر با این روش اشنایی ندارید بفرمائید تا راهنمائی کنم
سلام
من یه سرچ دیگه براساس query نوشتم منتها مشکلم اینه که فقط ردیف های پیدا شده را نشون میده کدش را میگذارم
اگر لطف کنی به هم بگی چطور با روش شما سرچ کنم

PHP:
 DataTable dt = new DataTable();
            DataSet ds = new DataSet();
            ds.Tables.Add(dt);
            SqlDataAdapter da = new SqlDataAdapter("select ... from ... where field_name like N'%" +textBox3.Text.Trim()+ "%'" ,cnt);
                       
                da.Fill(dt);
                dataGridView1.DataSource = dt.DefaultView;
                if (dataGridView1.CurrentCell != null)
                { dataGridView1.CurrentRow.Selected = true; }
 
آخرین ویرایش:

جفنگ نگو

عضو جدید
اره همین روشی هست که من گفتم اما اگر بخواهی کل داده ها در دیتاگرید وجود داشته باشد و کرسر در سطری قرار بگیرد که شما انتظار دارید

دیگه احتیاجی نیست که داده ها رو از دیتابیس بخوانید روی همین داده های دیتاگرید میتوانید سرچ انجام دهید تنها شرط اینکه داده ها بر اساس اون فیلدی که قرار است روی ان سرچ انجام شود sort یا منظم باشند

با فشار دادن اولین حرف به ابتدای ان لیستی حرکت میکند که حرف ان فشار داده شده است
 

جفنگ نگو

عضو جدید
اینو ببین

البته من زیاد به جزئیات توجه نکردم شما باید برای 200000 هزار رکورد از الگوریتم های بهتری استفاده کنید
 

پیوست ها

  • SelectCell2.zip
    39.3 کیلوبایت · بازدیدها: 0

tito11

عضو جدید
سلام به همه ی دوستان
من تازه شروع کردم سی شارپ رو یاد بگیرم اما استادم گیر داده حتما برنامه ها رو به زبان سی شارپ بنویسید.منم که خوب بلد نیستم.اگه لطف کنید جوابمو بدید ممنون میشم
جدولی 3*2 فرض کنید.می خواهیم از پایین ترین نقطه سمت چپ به بالا ترین نقطه سمت راست بریم.تعداد مسیرها و همچنین کشیدن مسیر.(مثلا baabb <- <- ا^ )
از راه بازگشتی می خواد. ممنون
 

جفنگ نگو

عضو جدید
سلام به همه ی دوستان
من تازه شروع کردم سی شارپ رو یاد بگیرم اما استادم گیر داده حتما برنامه ها رو به زبان سی شارپ بنویسید.منم که خوب بلد نیستم.اگه لطف کنید جوابمو بدید ممنون میشم
جدولی 3*2 فرض کنید.می خواهیم از پایین ترین نقطه سمت چپ به بالا ترین نقطه سمت راست بریم.تعداد مسیرها و همچنین کشیدن مسیر.(مثلا baabb <- <- ا^ )
از راه بازگشتی می خواد. ممنون

اگر به بحث توابع بازگشتی تسلط کافی داشته باشید مسئله ای کاملا ساده است

مقدار اولیه سطر و ستون باید برابر ( سطر = مقدار نهایی و ستون = مقدار ابتدایی ) باشد

در هر بار فراخوانی تابع باید یکی از سطر کاسته و یکی به ستون اضافه شود تا در نهایت مقدار سطر برابر صفر باشد اگر در این میان مقدار ستون به حد نهایی رسید باید فقط یکی از سطرها کاسته شود

حالا ببین با این تفاسیر میتوانید کد رو بنویسید . تا هرکجا که موفق به نوشتن شدید اینجا قرار دهید تا دوستان کمکتان کنند

برای واضح تر شدن توضیحات عکسی اپ میکنم
 

پیوست ها

  • 1.JPG
    1.JPG
    26.4 کیلوبایت · بازدیدها: 0

tito11

عضو جدید
ممنون توضیح خوبی بود
ولی من اصلا از بحث بازگشتی چیزی نمی دونم چون فقط یه جلسه رفتم سر کلاس.استاد هم هنوز کامل درس نداده. تازه دارم متد های اولیه ی سی شارپو می خونم . امروز ساعت 5 کلاسم شروع میشه و وقت ندارم.واسه همین ازتون می خوام تکه ی اصلی برنامه رو بنویسید واسم.(با شرمندگی):cry:
 

crcbook

عضو جدید
سلام دوست عزیز برای اینکه برنامه نویس بشی اولین و مهم ترین چیز اینه که به روابط بین اشیا واقعی اتفاق می افته رو درست ببینی و درک کنی و سعی کنی مدلی برای اونها پیاده سازی کنی بعدش خود به خود برنامه نویسی هم یاد می گیری!!!!!
 

crcbook

عضو جدید
زمانی که می خواهی در خروجی چاپ کنی اینو بزن
....+ " " + txtName.tostring()+ " " +...
 

جفنگ نگو

عضو جدید
ممنون توضیح خوبی بود
ولی من اصلا از بحث بازگشتی چیزی نمی دونم چون فقط یه جلسه رفتم سر کلاس.استاد هم هنوز کامل درس نداده. تازه دارم متد های اولیه ی سی شارپو می خونم . امروز ساعت 5 کلاسم شروع میشه و وقت ندارم.واسه همین ازتون می خوام تکه ی اصلی برنامه رو بنویسید واسم.(با شرمندگی):cry:
مشکلت حل شد ؟
زمانی که می خواهی در خروجی چاپ کنی اینو بزن
....+ " " + txtName.tostring()+ " " +...

:surprised:
 

hkyan

عضو جدید
با سلام
من سه تا جدول تو دیتابیس دارم که هر سه با هم مرتبط هستند سه تا هم کمبوباکس دارم
میخوام با انتخاب کمبوباکس اول آیتم های کمبوباکس دومی لود بشه و با انتخاب آیتم های دومی کمبوباکس سومی پر بشه
مثلا فرض کنیم به جدول کشور داریم و یه جدول استان و یه جدول شهر
که با انتخاب هر کشور از کمبوباکس اولی استان های اون کشور در کمبوباکس دومی لود بشه و با انتخاب هر استان از کمبوباکس دومی شهرهای اون استان در کمبوباکس سومی لود بشه
اگه کسی راه حلی داره لطفا بگه ممنون میشم
 

جفنگ نگو

عضو جدید
با سلام
من سه تا جدول تو دیتابیس دارم که هر سه با هم مرتبط هستند سه تا هم کمبوباکس دارم
میخوام با انتخاب کمبوباکس اول آیتم های کمبوباکس دومی لود بشه و با انتخاب آیتم های دومی کمبوباکس سومی پر بشه
مثلا فرض کنیم به جدول کشور داریم و یه جدول استان و یه جدول شهر
که با انتخاب هر کشور از کمبوباکس اولی استان های اون کشور در کمبوباکس دومی لود بشه و با انتخاب هر استان از کمبوباکس دومی شهرهای اون استان در کمبوباکس سومی لود بشه
اگه کسی راه حلی داره لطفا بگه ممنون میشم

چه ستون هایی در هر جدول دارید
 

جفنگ نگو

عضو جدید
با تشکر
جداول را پیوست کردم
میخوام با انتخاب آیتم از کمبوباکس agency کمبوباکس school پربشه و با انتخاب آیتم از کمبوباکس school کمبوباکس class پر بشه.مشاهده پیوست 116711

خب الان که جدول ها درست ساخته شده است مشکل شما در قسمت کد نویسی است ( اطلاع ندارید چگونه باید کد این قسمت رو بنویسید ) یا نمیتوانید ستون مورد نظر رو در کامبوباکس set کنید ؟

اگر کدی در این مورد نوشته اید قرار دهید
 

hkyan

عضو جدید
خب الان که جدول ها درست ساخته شده است مشکل شما در قسمت کد نویسی است ( اطلاع ندارید چگونه باید کد این قسمت رو بنویسید ) یا نمیتوانید ستون مورد نظر رو در کامبوباکس set کنید ؟

اگر کدی در این مورد نوشته اید قرار دهید
سلام
با تشکر
برای ارتباط کمبوباکس اولی و دومی کدش را نوشتم ولی برای ارتباط دومی و سومی موندم
PHP:
public partial class Form1 : Form
{
int result = -1;
string na;
SqlConnection cn = new SqlConnection("Data Source=netmaster;Initial Catalog=kia;Integrated Security=True");
DataSet ds = new DataSet();
DataView dv = new DataView();
SqlCommand cm = new SqlCommand();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
na = comboBox1.Text;
cn.Open();
SqlDataAdapter da = new SqlDataAdapter("select * from agency", cn);
da.Fill(ds, "agency");
dv.Table = ds.Tables["agency"];
comboBox1.DataSource = dv.Table;
comboBox1.DisplayMember = "agency_name";
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
dv.Sort = "agency_name";
na = comboBox1.Text;
result = dv.Find(na);
if (result != -1)
{
result = Convert.ToInt16(dv[result]["agency_id"]);
string a2 = "select * from school where agency_id=" + Convert.ToString(result);
SqlDataAdapter da2 = new SqlDataAdapter(a2, cn);
DataSet ds2 = new DataSet();
da2.Fill(ds2, "school");
comboBox2.DataSource = ds2.Tables["school"];
comboBox2.ValueMember = "school_name";
cn.Close();
 
  • Like
واکنش ها: RIG

جفنگ نگو

عضو جدید
سلام
با تشکر
برای ارتباط کمبوباکس اولی و دومی کدش را نوشتم ولی برای ارتباط دومی و سومی موندم
PHP:
public partial class Form1 : Form
{
int result = -1;
string na;
SqlConnection cn = new SqlConnection("Data Source=netmaster;Initial Catalog=kia;Integrated Security=True");
DataSet ds = new DataSet();
DataView dv = new DataView();
SqlCommand cm = new SqlCommand();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
na = comboBox1.Text;
cn.Open();
SqlDataAdapter da = new SqlDataAdapter("select * from agency", cn);
da.Fill(ds, "agency");
dv.Table = ds.Tables["agency"];
comboBox1.DataSource = dv.Table;
comboBox1.DisplayMember = "agency_name";
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
dv.Sort = "agency_name";
na = comboBox1.Text;
result = dv.Find(na);
if (result != -1)
{
result = Convert.ToInt16(dv[result]["agency_id"]);
string a2 = "select * from school where agency_id=" + Convert.ToString(result);
SqlDataAdapter da2 = new SqlDataAdapter(a2, cn);
DataSet ds2 = new DataSet();
da2.Fill(ds2, "school");
comboBox2.DataSource = ds2.Tables["school"];
comboBox2.ValueMember = "school_name";
cn.Close();

ببینید من یک مثال ساده وخیلی راحت تر میزنم امیدوارم مفید باشه

PHP:
            SqlConnection Connection = new SqlConnection("Path Connection");
            SqlCommand Command = new SqlCommand("Select * FROM NameTable", Connection);
            Connection.Open();
            SqlDataReader DataReader = Command.ExecuteReader();

            while (DataReader.Read())
            {
                comboBox1.Items.Add(DataReader.GetString(0).ToString());
            }
            Connection.Close();

حال شما برای کامبوباکس دوم و سوم باید در قسمت Command شرطی قرار دهید که داده های مورد نظر شما رو بارگذاری کند

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

hkyan

عضو جدید
ببینید من یک مثال ساده وخیلی راحت تر میزنم امیدوارم مفید باشه

PHP:
            SqlConnection Connection = new SqlConnection("Path Connection");
            SqlCommand Command = new SqlCommand("Select * FROM NameTable", Connection);
            Connection.Open();
            SqlDataReader DataReader = Command.ExecuteReader();

            while (DataReader.Read())
            {
                comboBox1.Items.Add(DataReader.GetString(0).ToString());
            }
            Connection.Close();

حال شما برای کامبوباکس دوم و سوم باید در قسمت Command شرطی قرار دهید که داده های مورد نظر شما رو بارگذاری کند

که این شرط باید برگرفته از نوع انتخاب شما در کامبوباکس اول و دوم باشد
با سلام
خیلی ممنون
کدی را که نوشتم میذارم

PHP:
private void Form1_Load(object sender, EventArgs e)
        {
      
            cn.Open();
            SqlCommand scm=new SqlCommand("select * from agency",cn);
            SqlDataReader reader = scm.ExecuteReader();
            while (reader.Read())
            {
                comboBox1.Items.Add(reader[2]);
            }
            cn.Close();

        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            cn.Open();
            SqlCommand scm2 = new SqlCommand("select * from SCHOOL inner join AGENCY on SCHOOL.AGENCY_ID=AGENCY.AGENCY_ID where agency.agency_name_vc=N'"+comboBox1.SelectedItem+"'",cn);
            SqlDataReader reader2=scm2.ExecuteReader();
            while(reader2.Read())
            {
                comboBox2.Items.Add(reader2[1]);
                break;
            }
            cn.Close();
                       
        }
      
        private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            cn.Open();
            SqlCommand scm2 = new SqlCommand("select * from class_name inner join school on SCHOOL.school_ID=class_ID where school.school_name_vc=N'" + comboBox2.SelectedItem + "'", cn);
            SqlDataReader reader2 = scm2.ExecuteReader();
            while (reader2.Read())
            {
                comboBox3.Items.Add(reader2[2]);
            }
            cn.Close();
اگه میشه اشکالش رو بگو چون با هر بار انتخاب از کمبوباکس مقدار اون تو کمبوباکس بعدی دوباره نشون داده میشه
 
  • Like
واکنش ها: RIG

جفنگ نگو

عضو جدید
با سلام
خیلی ممنون
کدی را که نوشتم میذارم

PHP:
private void Form1_Load(object sender, EventArgs e)
        {
      
            cn.Open();
            SqlCommand scm=new SqlCommand("select * from agency",cn);
            SqlDataReader reader = scm.ExecuteReader();
            while (reader.Read())
            {
                comboBox1.Items.Add(reader[2]);
            }
            cn.Close();

        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            cn.Open();
            SqlCommand scm2 = new SqlCommand("select * from SCHOOL inner join AGENCY on SCHOOL.AGENCY_ID=AGENCY.AGENCY_ID where agency.agency_name_vc=N'"+comboBox1.SelectedItem+"'",cn);
            SqlDataReader reader2=scm2.ExecuteReader();
            while(reader2.Read())
            {
                comboBox2.Items.Add(reader2[1]);
                break;
            }
            cn.Close();
                       
        }
      
        private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            cn.Open();
            SqlCommand scm2 = new SqlCommand("select * from class_name inner join school on SCHOOL.school_ID=class_ID where school.school_name_vc=N'" + comboBox2.SelectedItem + "'", cn);
            SqlDataReader reader2 = scm2.ExecuteReader();
            while (reader2.Read())
            {
                comboBox3.Items.Add(reader2[2]);
            }
            cn.Close();
اگه میشه اشکالش رو بگو چون با هر بار انتخاب از کمبوباکس مقدار اون تو کمبوباکس بعدی دوباره نشون داده میشه

ببخشید متوجه سوالتون نشدم امکان داره با عکس نشون بدید یا بهتر سوالتون رو مطرح کنید
 

hkyan

عضو جدید
سلام
با تشکر

یه عکس ضمیمه کردم
اگر از کمبوباکس اول یه آیتم را سلکت کنم آیتم متناظر با اون تو کمبوباکس دوم میاد ولی اگر دوباره همون را سلکت کنم دوباره تو کمبوباکس دوم تکرار میشه به همین ترتیب تو کمبوباکس سوم
sample.jpg
 
  • Like
واکنش ها: RIG

RIG

متخصص C#.net
اگه منظورت اینه که هر بار انتخابت باعث میشه تو کمبو 2 دوباره به ایتم ها اضافه شه یکم عجیبه . اما شما از
کد:
Combobox2.clear();
استفاده کن. ببین حل میشه.
 

hkyan

عضو جدید
با تشکر
clear کردن مشکلش را حل نمیکنه یه مثال میزنم
فرض کنید کمبوباکس اول کشور هستش و کمبوباکس دوم استان
با انتخاب کشور ایران از کمبوباکس اول استان ها تو کمبوباکس دوم پر میشه . حالا اگه دوباره کشور ایران از کمبوباکس اول انتخاب بشه دوباره همه استان ها تو کمبوباکس دوم پر میشه یعنی دو سری استان های تکراری تو کمبوباکس دوم لود میشه
 

جفنگ نگو

عضو جدید
با تشکر
clear کردن مشکلش را حل نمیکنه یه مثال میزنم
فرض کنید کمبوباکس اول کشور هستش و کمبوباکس دوم استان
با انتخاب کشور ایران از کمبوباکس اول استان ها تو کمبوباکس دوم پر میشه . حالا اگه دوباره کشور ایران از کمبوباکس اول انتخاب بشه دوباره همه استان ها تو کمبوباکس دوم پر میشه یعنی دو سری استان های تکراری تو کمبوباکس دوم لود میشه

کاربر RIG درست فرمودند باید در ابتدای اجرای کد کامبوباکس رو پاک کنید
PHP:
private void Form1_Load(object sender, EventArgs e)
        {
      

comboBox1.clear();
            cn.Open();
            SqlCommand scm=new SqlCommand("select * from agency",cn);
            SqlDataReader reader = scm.ExecuteReader();
            while (reader.Read())
            {
                comboBox1.Items.Add(reader[2]);
            }
            cn.Close();

        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
comboBox2.clear();
            cn.Open();
            SqlCommand scm2 = new SqlCommand("select * from SCHOOL inner join AGENCY on SCHOOL.AGENCY_ID=AGENCY.AGENCY_ID where agency.agency_name_vc=N'"+comboBox1.SelectedItem+"'",cn);
            SqlDataReader reader2=scm2.ExecuteReader();
            while(reader2.Read())
            {
                comboBox2.Items.Add(reader2[1]);
                break;
            }
            cn.Close();
                       
        }
      
        private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
comboBox3.clear();
            cn.Open();
            SqlCommand scm2 = new SqlCommand("select * from class_name inner join school on SCHOOL.school_ID=class_ID where school.school_name_vc=N'" + comboBox2.SelectedItem + "'", cn);
            SqlDataReader reader2 = scm2.ExecuteReader();
            while (reader2.Read())
            {
                comboBox3.Items.Add(reader2[2]);
            }
            cn.Close();
 

hkyan

عضو جدید
با تشکر
درسته حق با ایشون بود اول میبایست خالی میشدند.
 
  • Like
واکنش ها: RIG

khold

عضو جدید
دوستان من یه برنامه دیتابیسی نوشتم حالا می خوام ستاپ واسش درست کنم بزنم روی cd ... می خوام کل فایلهای برنامه به همراه خود دیتابیس و مشتقاتش هم با نصب برنامه من روی یه سیستم دیگه نصب و اجرا بشه چیکار کنم؟ خیلی جستجو کردم و مطالب مختلفی رو هم دیدم ولی یجورایی سردرگم شدم اگه بشه با یه نمونه ی ساده توضیح بدین ممنون میشم
 

جفنگ نگو

عضو جدید
دوستان من یه برنامه دیتابیسی نوشتم حالا می خوام ستاپ واسش درست کنم بزنم روی cd ... می خوام کل فایلهای برنامه به همراه خود دیتابیس و مشتقاتش هم با نصب برنامه من روی یه سیستم دیگه نصب و اجرا بشه چیکار کنم؟ خیلی جستجو کردم و مطالب مختلفی رو هم دیدم ولی یجورایی سردرگم شدم اگه بشه با یه نمونه ی ساده توضیح بدین ممنون میشم

لطفا بگو چه کارهایی انجام داده اید و کدوم بخش شما رو گیج کرده
 

Similar threads

بالا