PDA

View Full Version : Combobox و مقادیر تکراری



djscsi
جمعه 26 تیر 1388, 23:40 عصر
من combobox روی فرم رو به یکی از column های پایگاه داده اتصال دادم

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

ممنون میشم کمکم کنید

mohkami
جمعه 26 تیر 1388, 23:57 عصر
سلام،

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



private void Form1_Load(object sender, EventArgs e)
{
//A serveret hast
//B databaset
//edameye an dar hali hast ke username password vase sql et nadashte bashi
SqlConnection conn = new SqlConnection("Data Source=A;Initial Catalog=B;Integrated Security=SSPI");
conn.Open();
SqlCommand cmd = new SqlCommand("select distinct .... ", conn);//ba distinct gheir tekrarihara select kon
SqlDataReader rdr = null;
rdr = cmd.ExecuteReader();

//inja ba while comboboxeto por mikone
while (rdr.Read())
{
comboBox1.Items.Add(rdr[0].ToString());

}
}



:لبخندساده:

ehsanara
شنبه 27 تیر 1388, 09:57 صبح
اگه Primary Key نیست و می خوای تکراری هم نگیره خاصیت ستون رو unique بزار
مقدار تکراری نمیگیره

sajjadzare
شنبه 27 تیر 1388, 11:41 صبح
بعد از مقدار گذاري combo كد زير رل قرار بده حتما مقادير تكراري حذف ميشه

for (int i = 0; i < comboBox1.Items.Count; i++)
for (int j = i + 1; j < comboBox1.Items.Count; j++)
if (comboBox1.Items[j].ToString() == comboBox1.Items[i].ToString())
{
comboBox1.Items.RemoveAt(j);
j--;
}//if

djscsi
یک شنبه 28 تیر 1388, 04:06 صبح
با تشكر از همه دوستان اگر بحث كد نويسي باشه كدژست شماره 2 سريعتر يا شماره 4
از كدوم استفاده كنم؟
ممنون

hozouri
یک شنبه 28 تیر 1388, 10:03 صبح
اگر بحث کد نویسی باشه در بدترین حالت ها کد شماره 2 خیلی پرسرعت تر و با کاربرد تره شما فکر کنید ستونی با 1000 رکورد تکراری دارید ...
می تونید خودتون هم آزمایش کنید...

mohkami
یک شنبه 28 تیر 1388, 10:09 صبح
ببینید در هر دو شما اتصال با SQL را دارید در این بکسان هستند ولی از نظر برنامه نویسی وقتی که مقادیر n (به سمت بی نهایت میل کنه) باشه شما همه اون n تا رو وارد برنامه نمیکنید و بدتر از اون پیچیدگی زمانی برنامه آخر O(n^2

djscsi
یک شنبه 28 تیر 1388, 16:52 عصر
با تشكر از دوستان فكر كنم جواب روشن بود

newgoldenman
یک شنبه 28 تیر 1388, 18:40 عصر
من combobox روی فرم رو به یکی از column های پایگاه داده اتصال دادم

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

ممنون میشم کمکم کنید

سلام
وقتی خود SQL میتونه به راحتی و سرعت هر چه تمام تر، خواسته ی شما رو برآورده كنه، چه نیازی به كدنویسی و الگوریتم یافتن شماست؟! P.K بودن یا نبودن فیلدهای شما مهم نیست. دستور SQL تون رو بگونه ای تغییر دهید كه مقادیر تكراری رو حذف كنه، اونوقت نتایجش رو به روشهای بسیاری كه وجود داره، بریزید داخل ComboBox .

موفق باشید.

djscsi
سه شنبه 30 تیر 1388, 01:43 صبح
دوست عزيز پست شماره 2 هم همين كارو كرده
مگه غير اينه
البته اينم بگم من چند فيلد و combobox دارم پس مجبور شدم برا هر كدوم جدا بنويسم
ببينم راهي هست كه distinct برا چند فيلد در يك دستور بياد
ممنون