PDA

View Full Version : سوال: نمایش رکورد جدول دیتابیس در کمبوباکس فرم فرعی



ghasem110deh
سه شنبه 21 مرداد 1393, 10:02 صبح
سلام ...
1- من توی بانک اکسس ، 3 تا جدول دارم ... میخوام با این کد مقدار فیلد جدول a (نام) رو توی comboBox1 یه فرم دیگه نمایش بدم تا تو جدول b ذخیره کنم ، اما ارور میده :

OleDbConnection con = new OleDbConnection(Albumstring);
OleDbCommand com = new OleDbCommand();
con.Open();
string d;
OleDbDataAdapter adap;
DataSet ds = new DataSet();
d = "select * from Album";
adap = new OleDbDataAdapter(d, con);
adap.Fill(ds, "Album");
comboBox1.DataSource = ds.Tables["Album"];
comboBox1.DisplayMember = "New";


2- بعد چطور تو فرم اول (با label) نشون بدم که جدول a و b چند تا فیلد داره ... (فقط آمار تعداد رو میخوام ... مثلا آخرین ID که وارد شده)
مثلا تو جدول a تا حالا 20 تا رکورد ذخیره شده ... توی لیبل تو فرم اول برنامه بنویسه که 20 رکورد ذخیره دارید ! (نمیدونم مطلب رو رسوندم یا نه) از این کد استفاده کردم :

OleDbCommand com = new OleDbCommand("select count(*)from contact", con);
OleDbCommand com2 = new OleDbCommand("select count(*)from groups",con);
label6.Text = Convert.ToString((int)com.ExecuteScalar()) + " نفر";
label8.Text = Convert.ToString((int)com2.ExecuteScalar())+" گروه";

اینم ارور داد ... لطفا راهنمایی کنید ... ممنون !

parvizwpf
سه شنبه 21 مرداد 1393, 10:05 صبح
کد اول چه اروری و به چه خطی ارور میده؟
دومی هم همینطور

ghasem110deh
سه شنبه 21 مرداد 1393, 12:58 عصر
سلام اولی رو درست کردم :

DataTable table = new DataTable();
string sql = "Select New from Album";
con.Open();
OleDbDataAdapter da = new OleDbDataAdapter(sql, con);
da.Fill(table);
table.Rows.Add(" ");
comboBox1.DataSource = table;
comboBox1.DisplayMember = "New";
comboBox1.ValueMember = "New";
comboBox1.SelectedValue = " ";

دقیقا هر چی به دیتابیس (فیلد new) اضافه بشه ... تو کمبوباکس نشون میده :)
اما واسه لیبل الان این کد رو نوشتم (و تنها num شماره یک رو نشون میده) ... نمیدونم چطوری از cuont استفاده کنم که آخرین فیلد رو نشون بده ؟

con.Open();
str = "select Num from Pic";
com = new OleDbCommand(str, con);
OleDbDataReader reader = com.ExecuteReader();
reader.Read();
label1.Text = reader["Num"].ToString() + " عکس";
در واقع برنامه آلبوم عکس هستش ...

parvizwpf
چهارشنبه 22 مرداد 1393, 15:05 عصر
شما توی لیبل چی میخواهید نمایش بدید؟

ghasem110deh
چهارشنبه 22 مرداد 1393, 17:57 عصر
سلام ...
آخرین شماره ID رو ... مثلا تا حالا 10 تا عکس ذخیره شده ، توی لیبل (فرم لود) بنویسه 10 عکس :)
یه جا گفت با cuont باید بشماری بعد آخریشونو با select جدا کنی ... اما نتونستم :(

parvizwpf
چهارشنبه 22 مرداد 1393, 18:19 عصر
select max(id) from pic
دیگه نیازی یه ExcuteReader نیست چون چیز شمارشی برنمیگردونه که بخواهید فور بزنید. فک کنم Excutescalar جواب رو مستقیم برگردونه

ghasem110deh
چهارشنبه 22 مرداد 1393, 18:34 عصر
ممنون !
با این درست شد :

str1 = "SELECT TOP 1 ID FROM Album ORDER BY ID DESC";
com = new OleDbCommand(str1, con);
OleDbDataReader reader1 = com.ExecuteReader();
reader1.Read();
label2.Text = reader1["ID"].ToString() + " آلبوم";

:چشمک: