PDA

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



f.beigirad
سه شنبه 14 آذر 1391, 18:16 عصر
با سلام و عرض ادب

این برنامه 5 تا عکس رو از دیتابیس SQLite میخونه و نمایش میده.
نمیدونم چه مشکلی داره.
دو روزه کدهاشو تریس میکنم ، به نکته ای بر نمیخورم.

اما نمیفهمم چرا دکمه Preveiw درست کار نمیکنه.
این برنامه دونه دونه عکسا رو نشون میده و میتونه عکسارو به عقب یا جلو ببره.
وقتی ب آخرین عکس رسید دکمه Next غیر فعال میشه ، وقتیم که به اولین عکس رسید دکمه Preveiw غیر فعال میشه.
همین.

http://s1.picofile.com/file/7574032575/aEEE.jpg

بفرمایید لینک اصلاح شد :


96103


اگه میشه اساتید لطفی کنن و یه نیم نگاهی به این پروژه من بندازن.


باتشکر

vistacali
چهارشنبه 15 آذر 1391, 14:34 عصر
اصلان فایل دانلود نمیشه من 9 باری زدم ولی دانلود نمیشه اول مشکل دانلودش رو حل کن

f.beigirad
چهارشنبه 15 آذر 1391, 20:24 عصر
با سلام.

لینک اصلاح شد.
از بالا دانلود کنید

vistacali
پنج شنبه 16 آذر 1391, 07:15 صبح
چک کنید ببینید درست شد مشکل این بود توی else if دکمه ای رو که رسیدی اخر غیر فعال میکنی ولی اون دکمه که باید برگرده عقب رو فعال نمیکنی:بوس:


private void button1_Click(object sender, EventArgs e)
{

if (i < dt.Rows.Count)
{
byte[] arrpic = (byte[])(dt.Rows[i]["pic"]);
ms = new MemoryStream(arrpic);
pictureBox1.Image = Image.FromStream(ms);
button2.Enabled = true;
i++;
label5.Text = Convert.ToString(i);

}
else if(i>=dt.Rows.Count)
{
button1.Enabled = false;
button2.Enabled = true;
label5.Text = Convert.ToString(i);
}
}

private void button2_Click(object sender, EventArgs e)
{
if (i>1)
{
byte[] arrpic = (byte[])(dt.Rows[i]["pic"]);
ms = new MemoryStream(arrpic);
pictureBox1.Image = Image.FromStream(ms);
button1.Enabled = true;
label5.Text = Convert.ToString(i);
i--;
}
else if (i ==1)
{
button2.Enabled = false;
button1.Enabled = true;
label5.Text = Convert.ToString(i);
}
}

f.beigirad
پنج شنبه 16 آذر 1391, 10:06 صبح
با سلام دوست عزیز.

من این کدو امتحان کردم.ولی موقعی که تا عکس 5 که آخرین عکسه میبینم و کلید next غیر فعال میشه، حالا میخوام برگردم به عکس قبل که این ارور رو میده :

There is no row at position 5.

vistacali
پنج شنبه 16 آذر 1391, 13:57 عصر
میگه هیچ ردیفی در موقعیت 5 نیست ، خو اینجا باید قبل برگردی عقب یک واحد از i کم کنی پس بیا i-- رو ببر زیر شرط if(i<1) یعنی به طریق زیر


private void button2_Click(object sender, EventArgs e)
{
if (i>1)
{
i--;

byte[] arrpic = (byte[])(dt.Rows[i]["pic"]);
ms = new MemoryStream(arrpic);
pictureBox1.Image = Image.FromStream(ms);
button1.Enabled = true;
label5.Text = Convert.ToString(i);
}
else if (i ==1)
{
button2.Enabled = false;
button1.Enabled = true;
label5.Text = Convert.ToString(i);
}
}

f.beigirad
پنج شنبه 16 آذر 1391, 16:02 عصر
بسیار ممنون.درست شد.
من شماره عکسا و شماره رکورد دیتا تیبل رو با هم اشتباهی گرفته بودم