PDA

View Full Version : طریقه خواندن داده از دیتابیس و نمایش در کمبوباکس



eletcomp
شنبه 30 فروردین 1393, 11:12 صبح
با سلام
میخواستم بدونم چطور می توان اطلاعات را از دیتابیس خواند و بر روی کمبوباکس نمایش داد!
با یک مثال می گم: فکر کنید یک صفحه لاگین دارید:برای یوزر اش یک کمبو باکس می زاریم و برای پسورد اش یک تکس باکس: و یک جدول به نام user در دیتابیس دارید!!! الان میخوام بدونم چطور می توان: زمانی که مقدار مثلا admin را وارد جدول user کردیم به صورت اتوماتیک خصوصیت items کمبوباکس مقدارش تغییر کند یعنی admin بشود!؟؟
سپاس

mir555
شنبه 30 فروردین 1393, 11:18 صبح
راحت ترین راه اینه دیتا جدول تو یه حلقه بخونی و تو یک حلقه او اولی تا اخری پیمایش کنی و در هر پیمایش اطلاعات تو combo box بریزی


dataset1.table1; // این جدول ما که پر شده

for (int i=0;i<dataset1.table1.count;i++)
combobox1.itemes.add(dataset1.table1[i].name); /// این فیلدیه که میخوای دیتا ازش خونده بشه

eletcomp
شنبه 30 فروردین 1393, 11:23 صبح
ممنون دوست عزیز: ولی من از روش دیتاست استفاده نمی کنم!! از روش sql command استفاده می کنم!!!! شما توی کد نوشتید dataset1 !!! یعنی دارید از روش ویزاردی استفاده می کنید!!! درسته؟؟؟
راه دیگه ایا وجود داره؟؟؟
سپاس

r4hgozar
شنبه 30 فروردین 1393, 12:04 عصر
می تونین کوئری هم بنویسید.


var q = from c in db.tbl_name
select c;
comboBox1.DataSource = q.ToList();
comboBox1.DisplayMember = "name";


اما این کار از نظر امنیتی اشتباه. چون شما داری یوزر نیم رو می دی به کاربر و اون فقط باید پسورد رو پیدا کنه.
بهترین کار اینه که برای هر دو تکس باکس بزاری و هم یوزر و پسورد رو بررسی کنی که درسته یا نه

Kaveh619
شنبه 30 فروردین 1393, 12:10 عصر
ممنون دوست عزیز: ولی من از روش دیتاست استفاده نمی کنم!! از روش sql command استفاده می کنم!!!! شما توی کد نوشتید dataset1 !!! یعنی دارید از روش ویزاردی استفاده می کنید!!! درسته؟؟؟راه دیگه ایا وجود داره؟؟؟سپاسدوست عزیز یه تیکه از کد خودم براتون میذارم...:


SqlConnection con1=new SqlConnection();
con1.ConnectionString = "Server=.;Database=Electromotor;trusted_Connection= true;";
con1.Open();
string query1 = "Select distinct [جنس عایق] from Table2";
SqlCommand com1=new SqlCommand(query1,con1);
SqlDataReader dr1 = com1.ExecuteReader();
while (dr1.Read())
{
comboBox2.Items.Add(dr1["جنس عایق"]);
}
con1.Close();

eletcomp
شنبه 30 فروردین 1393, 12:18 عصر
اما این کار از نظر امنیتی اشتباه. چون شما داری یوزر نیم رو می دی به کاربر و اون فقط باید پسورد رو پیدا کنه.
بهترین کار اینه که برای هر دو تکس باکس بزاری و هم یوزر و پسورد رو بررسی کنی که درسته یا نه
ممنون دوستان:

دوست عزیز: کدای که نوشتی به چه صورتی هست؟؟؟ زبان linq هست!!! یا sql !!!










دوست عزیز یه تیکه از کد خودم براتون میذارم...:SqlConnection con1=new SqlConnection(); con1.ConnectionString = "Server=.;Database=Electromotor;trusted_Connection =true;"; con1.Open(); string query1 = "Select distinct [جنس عایق] from Table2"; SqlCommand com1=new SqlCommand(query1,con1); SqlDataReader dr1 = com1.ExecuteReader(); while (dr1.Read()) { comboBox2.Items.Add(dr1["جنس عایق"]); } con1.Close();


دوست عزیز ممنون: لطفا کن کد هات را توی تگ code بزار :توی نوار ابزار به صورت علامت # هست!! من نمیتونم کد هات را بخونم!! قر و قاتی هست!!
سپاس

r4hgozar
شنبه 30 فروردین 1393, 12:21 عصر
اخ شرمنده یادم رفت بگم. اون دستور یک کوئری هست.
من دیتابیسم رو با استفاده از entity freamwork به سی شارپ متصل می کنم.
خیلی راحت . حجم کد نویسیش کمه و سریع.

اگه هم می خوای از روش های دیگه استفاده کنی باید جای datasource نام جدولت رو بدی و جای displaymember هم فیلد مورد نظرت رو.
حالا هر روشی می تونه باشه. این 2 خاصیت رو باید به کار ببری تا به دیتابیس متصل بشی..

Kaveh619
شنبه 30 فروردین 1393, 14:51 عصر
ممنون دوستان:

دوست عزیز: کدای که نوشتی به چه صورتی هست؟؟؟ زبان linq هست!!! یا sql !!!






دوست عزیز ممنون: لطفا کن کد هات را توی تگ code بزار :توی نوار ابزار به صورت علامت # هست!! من نمیتونم کد هات را بخونم!! قر و قاتی هست!!
سپاس

آقا من شرمندتون هستم....

پست قبل رو درست کردم...
ضمنا دستور Select Distinct همونطور که میدونید برای انتخاب نشدن گزینه های تکراری هست...

eletcomp
شنبه 30 فروردین 1393, 15:36 عصر
آقا من شرمندتون هستم....
پست قبل رو درست کردم...
ضمنا دستور Select Distinct همونطور که میدونید برای انتخاب نشدن گزینه های تکراری هست...
ممنون دوست عزیز: راستی لطف می کنی در مورد کد ها یکم توضیح بدهی!! جنس عایق چی هست؟؟؟:لبخند:
سپاس

Kaveh619
شنبه 30 فروردین 1393, 17:34 عصر
ممنون دوست عزیز: راستی لطف می کنی در مورد کد ها یکم توضیح بدهی!! جنس عایق چی هست؟؟؟:لبخند:
سپاس
نام ستون مورد نظرتون هست که برای من جنس عایق بوده!!
sqldatareader هم که برای خوندن اطلاعات از دیتابیس هست...
و برای همین یک While گذاشتیم که همینطور اطلاعات رو بخونه و تو دستوراتش نوشتیم که اطلاعات رو به Combobox که تو فرم من اسمش combobox 2 هست اد کنه...
اگه بازم سوالی هست من در خدمتم...

eletcomp
شنبه 30 فروردین 1393, 22:22 عصر
ممنون دوست عزیز: اگر امکان داره در قالب یک پروژه خیلی کوچک درست کن و قرار بده فایل را!!!
اخه ارور میده!!
118174
سپاس فراوان

Kaveh619
یک شنبه 31 فروردین 1393, 07:44 صبح
ممنون دوست عزیز: اگر امکان داره در قالب یک پروژه خیلی کوچک درست کن و قرار بده فایل را!!!
اخه ارور میده!!
118174
سپاس فراوان
دوست عزیز این عکس از پروژه ی خودم هست...حدس من اینه که بعد از عبارت آخری در کانکشن استرینگ یه سمی کالن کم گذاشتید...:
118177

eletcomp
یک شنبه 31 فروردین 1393, 09:20 صبح
ممنون: سمی کالن گذاشتم ولی باز هم جواب نداد!!!
مطمئن هستید کدتون کار می کند!!؟؟ توی محیط کنسول هست؟؟
سپاس

eletcomp
یک شنبه 31 فروردین 1393, 20:58 عصر
دوستان : کسی ایا می داند علت این ارور چیست!! چه زمانی رخ میدهد؟

Incorrect syntax near '-'
سپاس

Kaveh619
دوشنبه 01 اردیبهشت 1393, 03:10 صبح
ممنون: سمی کالن گذاشتم ولی باز هم جواب نداد!!!
مطمئن هستید کدتون کار می کند!!؟؟ توی محیط کنسول هست؟؟
سپاس
دوست عزیز وقتی برای شما از پروژه ی خودم عکس میگیرم و میذارم یعنی اینکه برنامه ام درست کار میکنه...!
یعنی چی که کدتون درست هست یا نه؟!
کد من برای محیط ویندوز فرم هست و کاملا منطقی است و درست هم کار میکند...

دوستان : کسی ایا می داند علت این ارور چیست!! چه زمانی رخ میدهد؟

Incorrect syntax near '-'
سپاس
ارور مقابل مربوط به خطای دستوری است....یعنی توی یکی از رشته هایی که نوشتید یه اشکال دستوری وجود داره،مسیرش هم نوشته ، نوشته نزدیک کاراکتر - یه مشکلی وجود داره...

eletcomp
دوشنبه 01 اردیبهشت 1393, 10:12 صبح
ممنون :مشکل حل شد!