PDA

View Full Version : طریقه ذخیره کردن عکس درکنترلlistviwتوسط فایلxml



hadis shaeidi
جمعه 22 مهر 1390, 09:38 صبح
من برنامه تحت شبکه سروروکلاینتودارم زمانی که برنامه سرورrunمیشه نام اون سمت سروردریکlistviewقرارمیگیره که من یه کنترلimagelistبه فرم سمت سروراضافه کردم ودرقسمتproperticاینimagelistیک عکس گذاشتم هنگامی که برنامه runمیشه این عکس کنارنام کلاینت دراینlistviewمیاد.
حالامن باxmlنام کلاینت هاروذخیره ولودکردم عکس روچطوری ذخیره کنم؟
ذخیره کردن:
ds.Tables.Add("Users");
ds.Tables["Users"].Columns.Add("Name");
for (int i = 0; i < clients.Count; i++)
{
ds.Tables["Users"].Rows.Add("User Name : " + listViewClients.Items[i].Text.ToString());
}
ds.WriteXml("Users.xml");
}
لودکردن:
DataSet ds2 = new DataSet();
ds2.ReadXml("Users.xml");
for (int j = 0; j < ds2.Tables["Users"].Rows.Count; j++)
{
listViewClients.Items.Add(ds2.Tables["Users"].Rows[j][0].ToString());
}

nilmil_nil
جمعه 22 مهر 1390, 17:25 عصر
سلام
شما باید عکسی که توی لیست ویو هست رو توی یه پوشه ذخیره کنی حالا بستگی داره که اون عکس رو از کجا میاری اگه از سرور هست که باید همون رو توی یه فولدر ذخیره کنی و آدرسش رو بذاری توی فایل
XML کار سختی نیست

hadis shaeidi
جمعه 22 مهر 1390, 22:43 عصر
سلام ممنونم ازپاسخ خوبتون
میشه کدش روبنویسیدبرام چطوری ذخیره ولودکنم عکس رو.

nilmil_nil
یک شنبه 24 مهر 1390, 10:24 صبح
سلام
دوست عزیز
اینم کد واسه ذخیره عکس توی XML

private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
{
string strpic = e.Item.SubItems[1].Text;
byte[] img = Convert.FromBase64String(strpic);

System.IO.Stream strim = new System.IO.MemoryStream(img);

pictureBox1.Image = Image.FromStream(strim);
}

private void BtnAddrow_Click(object sender, EventArgs e)
{
byte[] img;
System.IO.FileStream fs = new System.IO.FileStream("pic.jpg", System.IO.FileMode.Open);
System.IO.BinaryReader br = new System.IO.BinaryReader(fs);

img = br.ReadBytes((int)fs.Length);
br.Close();
fs.Close();
fs.Dispose();
string pic = System.Convert.ToBase64String(img);
int count = listView1.Items.Count + 1;
listView1.Items.Add("User : " + count.ToString());
listView1.Items
[listView1.Items.Count - 1].SubItems.Add(pic);
}

private void BtnReadXML_Click(object sender, EventArgs e)
{
DataSet ds2 = new DataSet();
ds2.ReadXml("Users.xml");
listView1.Items.Clear();
for (int j = 0; j < ds2.Tables["Users"].Rows.Count; j++)
{
listView1.Items.Add(ds2.Tables["Users"].Rows[j][0].ToString());
listView1.Items
[listView1.Items.Count - 1].SubItems.Add(ds2.Tables["Users"].Rows[j][1].ToString());
}
}

private void BtnWriteXML_Click(object sender, EventArgs e)
{
byte[] img;
System.IO.FileStream fs = new System.IO.FileStream("pic.jpg", System.IO.FileMode.Open);
System.IO.BinaryReader br = new System.IO.BinaryReader(fs);
img = br.ReadBytes((int)fs.Length);

string pic = System.Convert.ToBase64String(img);
DataSet ds = new DataSet();
ds.Tables.Add("Users");
ds.Tables["Users"].Columns.Add("Name");
ds.Tables["Users"].Columns.Add(pic);

for (int i = 0; i < listView1.Items.Count; i++)
{
ds.Tables["Users"].Rows.Add(listView1.Items[i].Text,
listView1.Items[i].SubItems[1].Text);
}
ds.WriteXml("Users.xml");
}

hadis shaeidi
چهارشنبه 27 مهر 1390, 11:15 صبح
سلام خسته نباشید
من روهمین برنامه که شمانوشتیدداخل فرمم یک دکمهdelete گذاشتم که میخوام ازتولیست چیزی که انتخاب میشه حذف کنم وعلاوه براینکه ازلیست حذف میشه ازتوی جدول دیتابیس هم حذف بشه که موقع لودکردن دیگه نیاد
اینم کددکمهdeleteمن هستش.
string clientName = null;
if (listView1show.SelectedItems.Count != 0)
{ string index = (listView1show.SelectedItems[0].Text.Substring(0, listView1show.SelectedItems[0].Text.IndexOf('-')));
clientName = listView1show.SelectedItems[0].Text;

DialogResult result = MessageBox.Show(
"Are you sure you want to delete " +
clientName + "? ", "Structure Demo",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
ListViewItem lvi = new ListViewItem();
lvi = listView1show.FindItemWithText(clientName);
listView1show.Items.RemoveAt(lvi.Index);
}

hadis shaeidi
چهارشنبه 27 مهر 1390, 11:17 صبح
آخرش درست نیومده:
ListViewItem lvi = new ListViewItem();
lvi = listView1show.FindItemWithText(clientName);
listView1show.Items.RemoveAt(lvi.Index);
راستی عکس همراهش روهم میخوام ازلیست حذف بشه هم ازدیتابیس

hadis shaeidi
چهارشنبه 27 مهر 1390, 11:20 صبح
آخرش درست نیومده:

ListViewItem lvi = new ListViewItem();

lvi=lisViw1.show.FindItemWithText(clientName)

LstView1.show.iitems.RemovAt(lvi.index)

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

nilmil_nil
چهارشنبه 27 مهر 1390, 15:25 عصر
دوست عزیز ممنون
ولی کاش مشکلتون توی این کد رو هم میگفتین !

hadis shaeidi
چهارشنبه 27 مهر 1390, 23:14 عصر
این کدفقط کلاینت انتخابی ازلیست روحذف میکنه ولی ازتودیتابیس حذف نمیکنه
درضمن عکس همراهش روهم حذف نمیکنه
منتظرپاسختون هستم
موفق باشید

nilmil_nil
پنج شنبه 28 مهر 1390, 08:20 صبح
سلام دوست عزیز
شما باید یه فیلد داشته باشی که بر اساس اون تو دیتا بیس سرچ کنی و پیدا کنی اون رکوردی رو که میخوای حذف کنی و بعد با دستور Delete From TBL Where ID=شماره id
واسه حذف عکس هم اگه از لیست ویو باشه که شما همون سطر انتخابی رو که حذف کنی عکس هم باهش پاک میشه
واگه از روی هخارد باشه باید از دستور File.Delete(...) استفاده کنی
به جای ... باید مشیر فابل عکس رو بذاری

hadis shaeidi
پنج شنبه 28 مهر 1390, 09:11 صبح
ممنونم ازپاسخ خوبتون
شرمنده میشه به طورنمونه به صورت کداینکارروبرام بنویسید
هروقت بیاربودید ازروهمون برنامه که خودتون برامن نوشتید