PDA

View Full Version : سوال: ذخیره کردن عکس افراد موقع ثبت نام



neda_dela
یک شنبه 19 مهر 1388, 19:35 عصر
سلام دوستان
من می خوام موقع ثبت نام افراد این امکان رو داشته باشم که عکس 4*3 هر کدوم از اونها هم توی بانک قرار بگیره. منتها تا حالا این کار رو انجام ندادم لطفا منو راهنمایی مفصل کنین
اینکه چه فیلدی و از چه نوعی توی بانک باید داشته باشم و توی فرم هم چه تغییراتی باید بدم (چه کنترل ها و چه دستوراتی باید اضافه بشه) متشکرم

sara.f
یک شنبه 19 مهر 1388, 19:53 عصر
سلام دوستان

من می خوام موقع ثبت نام افراد این امکان رو داشته باشم که عکس 4*3 هر کدوم از اونها هم توی بانک قرار بگیره. منتها تا حالا این کار رو انجام ندادم لطفا منو راهنمایی مفصل کنین

اینکه چه فیلدی و از چه نوعی توی بانک باید داشته باشم و توی فرم هم چه تغییراتی باید بدم (چه کنترل ها و چه دستوراتی باید اضافه بشه) متشکرم

سلام دوستم.
کلی مطلب توی این سایت در این باره هست.
حالا اینم یه برنامه برای کار شما.
http://barnamenevis.org/forum/showthread.php?t=180720

abbaseftekhari
یک شنبه 19 مهر 1388, 19:53 عصر
سلام دوست من بهتر بجای ذخیره عکس در بانک ان را در دیسک سخت (هارد) ذخیره کنید و ادرس عکس را در بانک ذخیره کنید تا بعدا دچار مشکل نشوید.

kh1387
یک شنبه 19 مهر 1388, 22:00 عصر
ذخیره عکس بر روی هارد یا در بانک هر کدام مزایا و معایبی دارند.
هدف شما چیه؟
برنامه تون در چه زمینه ای هست؟ بر اساس برنامه تون دست به عمل بزنید.
موفق باشید

neda_dela
سه شنبه 21 مهر 1388, 21:11 عصر
سلام دوستم.
کلی مطلب توی این سایت در این باره هست.
حالا اینم یه برنامه برای کار شما.
http://barnamenevis.org/forum/showthread.php?t=180720


دوست عزیزم از لطفت بسیار ممنونم اما متاسفانه دات نت من 2005 و اس کیو الم هم 2000 هست
و فایل بانکی که گذاشتی ری استور نشد.
دوستان از همتون خواهش می کنم که این سوال منو جواب بدید من می خوام هنگام ثبت اطلاعات افراد عکس 4*3 اونا رو هم توی بانک ذخیره کنم به طوری که توی گرید هم بتونم نشون بدم.

sara.f
چهارشنبه 22 مهر 1388, 00:09 صبح
دوست عزیزم از لطفت بسیار ممنونم اما متاسفانه دات نت من 2005 و اس کیو الم هم 2000 هست






و فایل بانکی که گذاشتی ری استور نشد.


دوستان از همتون خواهش می کنم که این سوال منو جواب بدید من می خوام هنگام ثبت اطلاعات افراد عکس 4*3 اونا رو هم توی بانک ذخیره کنم به طوری که توی گرید هم بتونم نشون بدم.

سلام دوباره
من کد تمام چیزهایی که می خوای را اینجا واست میذارم.


publicstring filename;
publicstring filename1;


کد پر کردن گریدویو


DataSet objset = newDataSet();
dataadapter.SelectCommand = newSqlCommand();
dataadapter.SelectCommand.Connection = objconn;
dataadapter.SelectCommand.CommandText = "select code,fname,pic from employee";
dataadapter.FillSchema(objset, SchemaType.Source, "employee1");
dataadapter.Fill(objset, "employee1");
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = objset;
dataGridView1.DataMember = "employee1";
dataGridView1.Columns[0].HeaderText = "کد";
dataGridView1.Columns[1].HeaderText = "نام ";
dataGridView1.Columns[2].HeaderText = "عکس";



کد browse(آوردن عکس از داخل فولدری در کامپیوتر)


privatevoid button13_Click(object sender, EventArgs e)
{
openFileDialog1.Filter = "Images(*.jpg)|*.jpg|All files(*.*)|*.*)";
openFileDialog1.FilterIndex = 1;
openFileDialog1.Title = "browse";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
filename = openFileDialog1.FileName;
pictureBox1.ImageLocation = filename;
}
}


کد ثبت عکس:


privatevoid button1_Click(object sender, EventArgs e)
{
try{
dataadapter.InsertCommand = newSqlCommand();
dataadapter.InsertCommand.Connection = objconn;
dataadapter.InsertCommand.CommandText = "insert into employee(fname,pic) values(@fname,@i)";
dataadapter.InsertCommand.Parameters.AddWithValue("@fname", textBox2.Text.Trim());
System.IO.FileStream fs = new System.IO.FileStream(filename, System.IO.FileMode.Open);
byte[] imagecontent = newbyte[fs.Length];
fs.Read(imagecontent, 0, (int)fs.Length);
SqlParameter ping = newSqlParameter("@i", imagecontent);
ping.SqlDbType = SqlDbType.Image;
dataadapter.InsertCommand.Parameters.Add(ping);
objconn.Open();
dataadapter.InsertCommand.ExecuteNonQuery();
objconn.Close();
Form1_Load(sender, e);
MessageBox.Show("اطلاعات با موفقیت وارد شد");
}
catch(Exception t)
{
label7.Text = t.Message;
}
}


کد نمایش عکس از گریدویو در picturebox


privatevoid dataGridView2_SelectionChanged(object sender, EventArgs e)
{
try
{
if (dataGridView2.Rows.GetRowCount(DataGridViewElemen tStates.Selected) > 0)
{
MemoryStream ms = newMemoryStream((byte[])(dataGridView2.SelectedCells[0].Value));
pictureBox2.Image = Image.FromStream(ms);
}
}
catch (Exception t)
{
label15.Text = t.Message;
}
}

پیروز باشی دوستم :لبخندساده:

sara.f
چهارشنبه 22 مهر 1388, 00:11 صبح
سلام دوستان



من می خوام موقع ثبت نام افراد این امکان رو داشته باشم که عکس 4*3 هر کدوم از اونها هم توی بانک قرار بگیره. منتها تا حالا این کار رو انجام ندادم لطفا منو راهنمایی مفصل کنین


اینکه چه فیلدی و از چه نوعی توی بانک باید داشته باشم و توی فرم هم چه تغییراتی باید بدم (چه کنترل ها و چه دستوراتی باید اضافه بشه) متشکرم

در ضمن بر اساس کد من ،اسم فیلدت را در بانک pic بذار و از نوع ( varbinary(max تعریف کن. :لبخندساده:

neda_dela
پنج شنبه 23 مهر 1388, 19:32 عصر
در ضمن بر اساس کد من ،اسم فیلدت را در بانک pic بذار و از نوع ( varbinary(max تعریف کن. :لبخندساده:
مرسی عزیزم عکس رو براوز می کنه اما توی ثبتش با مشکل مواجه شدم کد رو می ذارم ببین لطفا مشکاش رو بگو


private void button1_Click(object sender, EventArgs e)
{
try
{
this.st_shakhsiTableAdapter.Fill(this.quranDataSet ._st_shakhsi);
string date = maskedTextBox1.Text;
string fname = textBox1.Text;
string fnme = textBox2.Text;
string jf = textBox3.Text;
string mnme = textBox4.Text;
string jm = textBox5.Text;
string bdate = maskedTextBox2.Text;
string lname = textBox15.Text;
string i = pictureBox1.ImageLocation;
SqlDataAdapter da = new SqlDataAdapter();
da.InsertCommand = new SqlCommand();
SqlConnection myConnection = new SqlConnection(Program.strcon);
string query = "insert into st-shakhsi(tarikh,firstname,lastname,fname,fjob,mname ,mjob,birthday,pic)values(@date,@fname,@lname,@fnm e,@jf,@mnme,@jm,@bdate,@i)";
da.InsertCommand.CommandText = query;
da.InsertCommand.Parameters.AddWithValue("@date", maskedTextBox1.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@fname",textBox1.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@lname", textBox15.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@fnme", textBox2.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@jf", textBox3.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@mnme", textBox4.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@jm", textBox5.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@bdate", maskedTextBox2.Text.Trim());
System.IO.FileStream fs = new System.IO.FileStream(filename, System.IO.FileMode.Open);
byte[] imagecontent = new byte[fs.Length];
fs.Read(imagecontent, 0, (int)fs.Length);
SqlParameter ping = new SqlParameter("@i", imagecontent);
ping.SqlDbType = SqlDbType.Image;
da.InsertCommand.Parameters.Add(ping);
myConnection.Open();
da.InsertCommand.ExecuteNonQuery();
myConnection.Close();
Form1_Load(sender, e);
MessageBox.Show("ںلéںمں¢ ں êيهçی¢ يں©§ ¬§");
}
catch (Exception t)
{
label7.Text = t.Message;
}

از خط form1_load خطا می گیره این خطا

The name 'Form1_Load' does not exist in the current context

ببخشید اذیت می کنم :قلب::خجالت:

sara.f
جمعه 24 مهر 1388, 11:12 صبح
مرسی عزیزم عکس رو براوز می کنه اما توی ثبتش با مشکل مواجه شدم کد رو می ذارم ببین لطفا مشکاش رو بگو
از خط form1_load خطا می گیره این خطا

The name 'Form1_Load' does not exist in the current context

ببخشید اذیت می کنم :قلب::خجالت:
سلام دوستم.
همون طور که می بینی، این خطا به نام فرمت هست،حتما اسم فرمت "form1" نیست، شاید فرم 2 یا هر فرم دیگه ای هست.

neda_dela
جمعه 24 مهر 1388, 13:05 عصر
سلام دوستم.
همون طور که می بینی، این خطا به نام فرمت هست،حتما اسم فرمت "form1" نیست، شاید فرم 2 یا هر فرم دیگه ای هست.
من هم فرم 1 دارم و هم فرم 2
تو فرم 1 گرید و دکمه ثبت نام و یه پیکچر باکس دارم. وقتی رو دکمه ثبت نام کلیلک می کنم به فرم 2 می ره که اونجا اطلاعات رو می گیره و این کدی که گذاشتم تا ببینی رو برای رویداد کلیک اون دکمه نوشتم یعنی دکمه ثبت فرم 2.
حالا اصلا منظورتون از این خط کد چی هست؟
form1_load(sender,e)
خواستین فرم 1 رو صدا بزنین؟ نباید اول یه متغیر از نوع فرم 1 بسازم؟
گرفتار یه ناشی شدی ها:قهقهه:

sara.f
جمعه 24 مهر 1388, 13:11 عصر
من هم فرم 1 دارم و هم فرم 2
تو فرم 1 گرید و دکمه ثبت نام و یه پیکچر باکس دارم. وقتی رو دکمه ثبت نام کلیلک می کنم به فرم 2 می ره که اونجا اطلاعات رو می گیره و این کدی که گذاشتم تا ببینی رو برای رویداد کلیک اون دکمه نوشتم یعنی دکمه ثبت فرم 2.
حالا اصلا منظورتون از این خط کد چی هست؟
خواستین فرم 1 رو صدا بزنین؟ نباید اول یه متغیر از نوع فرم 1 بسازم؟
گرفتار یه ناشی شدی ها:قهقهه:
نه عزیزم.
من این کد را گذاشته بودم که وقتی اطلاعات جدید را می خوام وارد کنم، اطلاعات وارد شده را واسم توی گریدویو نشون بده، یعنی فرم را از اول load می کنه.
من نمی خواستم فرمم را از درون فرم دیگه ای صدا بزنم.

sara.f
جمعه 24 مهر 1388, 13:15 عصر
من هم فرم 1 دارم و هم فرم 2
تو فرم 1 گرید و دکمه ثبت نام و یه پیکچر باکس دارم. وقتی رو دکمه ثبت نام کلیلک می کنم به فرم 2 می ره که اونجا اطلاعات رو می گیره و این کدی که گذاشتم تا ببینی رو برای رویداد کلیک اون دکمه نوشتم یعنی دکمه ثبت فرم 2.

فقط یه چیزی را من متوجه نمی شم!!! شما چرا می خواید با زدن دکمه ثبت نام به فرم 2 برید؟ اونجا چه کار دارید؟

saeeedft
جمعه 24 مهر 1388, 13:28 عصر
دوست عزیز اسم فرمتون(به جای فرم 1 در این مثال،اسم اون فرمی که توش عمل ثبت رو انجام میدید بذارید) رو عوض کنید ، اگه مشکل حل نشد پیغام بذارید تا بگم چکار کنید

sara.f
جمعه 24 مهر 1388, 14:07 عصر
دوست عزیز اسم فرمتون(به جای فرم 1 در این مثال،اسم اون فرمی که توش عمل ثبت رو انجام میدید بذارید) رو عوض کنید ، اگه مشکل حل نشد پیغام بذارید تا بگم چکار کنید
دوست عزیز شما خیلی مهربونی، ولی اگر جواب ها را خوانده بودی، دیگه این پست را نمی فرستادی.:لبخندساده: من اصلا قصد جسارت به شما را ندارم، ولی ندا جان هنوز نگفتن ساختار برنامشون چطوریه!
این خط کد صرفا برای load مجدد form بوده و برای اینکه اطلاعات جدید را در گریدویو نشان دهد. شاید اصلا نیازی نباشه ایشون این خط را بنویسه.

sara.f
جمعه 24 مهر 1388, 14:07 عصر
اگر دوستون ندا می خواد ثبت را در فرم2 انجام بده، آیا اونجا هم data grid view داره؟
ندا جان هنوزم به سوال قبلی من جواب ندادی! فرم2 این وسط چکاره هست وکد عمل ثبت را در کدام فرم نوشتی؟

saeeedft
جمعه 24 مهر 1388, 14:20 عصر
دوست عزیز شما خیلی مهربونی، ولی اگر جواب ها را خوانده بودی، دیگه این پست را نمی فرستادی.:لبخندساده: من اصلا قصد جسارت به شما را ندارم، ولی ندا جان هنوز نگفتن ساختار برنامشون چطوریه!
این خط کد صرفا برای load مجدد form بوده و برای اینکه اطلاعات جدید را در گریدویو نشان دهد. شاید اصلا نیازی نباشه ایشون این خط را بنویسه.
ممنون دوست عزیز، مهربونی از شماست، بله خودم متوجه شدم مشکل چیه که جواب دادم، این خانم ورداشنتن مثل کد شما رو تو فرمشون کپی کردن ،اسم فرم شما فرم 1 هست حالا برا دوستمون یه چیز دیگه شاید باشه، حالا اصلا نباشه هم اجرا میشه، این تکه فقط دادهایی که وارد میشن رو در همون لحظه نشون میده،غیره این نیست که؟
ضمنا به شما توصیه میکنم شما اول پست ها رو خوب بخونید تا متوجه منظور دیگران بشید،قصد من فقط کمک کردن به دوستمون بود و کاملا هم فهمیدم مشکل کارشون کجاست که پست فرستادم،وگرنه که من تازه کار چیزی رو که بلد نباشم برا چی لازمه که بخوام دیگران رئو اشتباه راهنمایی کنم

sara.f
جمعه 24 مهر 1388, 14:32 عصر
ممنون دوست عزیز، مهربونی از شماست، بله خودم متوجه شدم مشکل چیه که جواب دادم، این خانم ورداشنتن مثل کد شما رو تو فرمشون کپی کردن ،اسم فرم شما فرم 1 هست حالا برا دوستمون یه چیز دیگه شاید باشه، حالا اصلا نباشه هم اجرا میشه، این تکه فقط دادهایی که وارد میشن رو در همون لحظه نشون میده،غیره این نیست که؟
ضمنا به شما توصیه میکنم شما اول پست ها رو خوب بخونید تا متوجه منظور دیگران بشید،قصد من فقط کمک کردن به دوستمون بود و کاملا هم فهمیدم مشکل کارشون کجاست که پست فرستادم،وگرنه که من تازه کار چیزی رو که بلد نباشم برا چی لازمه که بخوام دیگران رئو اشتباه راهنمایی کنم
:لبخندساده:


ضمنا به شما توصیه میکنم شما اول پست ها رو خوب بخونید تا متوجه منظور دیگران بشید

چشم دوستم، توصیه به جایی هست، ولی باید بگم که من پاسختون را خوندم و چند بارم خوندم.

این خانم ورداشنتن مثل کد شما رو تو فرمشون کپی کردن ،اسم فرم شما فرم 1 هست حالا برا دوستمون یه چیز دیگه شاید باشه، حالا اصلا نباشه هم اجرا میشه، این تکه فقط دادهایی که وارد میشن رو در همون لحظه نشون میده،غیره این نیست که؟
Exactly!
حرف شما کاملا درسته، من به درستی این مطلب ایرادی نگرفتم.
تنها در تعجبم که چرا سوالی که در پست قبلی پاسخ داده شده را دوباره پاسخ می دید؟ شما بین این جواب و جواب خودتون تفاوتی می بینید؟!

سلام دوستم.
همون طور که می بینی، این خطا به نام فرمت هست،حتما اسم فرمت "form1" نیست، شاید فرم 2 یا هر فرم دیگه ای هست.
و زمانی که ما منتظر توضیحاتی در مورد برنامه از طرف ندا هستیم، شما میاید یه مطلب پاسخ داده شده را دوباره تکرار می کنید.

saeeedft
جمعه 24 مهر 1388, 14:43 عصر
ممنون از دوستمون sara.f به خاطر توجه اش به این پست،بنده بد متوجه شدم

neda_dela
شنبه 25 مهر 1388, 10:35 صبح
اگر دوستون ندا می خواد ثبت را در فرم2 انجام بده، آیا اونجا هم data grid view داره؟
ندا جان هنوزم به سوال قبلی من جواب ندادی! فرم2 این وسط چکاره هست وکد عمل ثبت را در کدام فرم نوشتی؟
سلام سارا جون ببخشید دیر جواب دادم.
من توی فرم 2 به تعداد فیلدهای جدولم لیبل و تکست باکس دارم تا اطلاعات رو واردشون کنم و بعد هم دکمه ثبت رو بزنم تا رکورد جدید توی گرید موجود در فرم 1 نمایش داده بشه
من تو فرم 2 گرید ندارم

sara.f
شنبه 25 مهر 1388, 11:15 صبح
سلام سارا جون ببخشید دیر جواب دادم.
من توی فرم 2 به تعداد فیلدهای جدولم لیبل و تکست باکس دارم تا اطلاعات رو واردشون کنم و بعد هم دکمه ثبت رو بزنم تا رکورد جدید توی گرید موجود در فرم 1 نمایش داده بشه
من تو فرم 2 گرید ندارم
خب پس اون کدهاي ثبت را در همین دکمه موجود در فرم2 بنویس و دیگر نیازی به خط form1_load نیست.همین.
حالا می خوام یه پیشنهاد بدم.چرا نمی یای گرید ویو را در فرم2 قرار بدی؟ آخه معمولا وقتی اقراد ثبتی را انجام میدن، دوست دارن همون موقع ببینن، نه اینکه واسه دیدن اطلاعات جدید به یه فرم دیگه برن.

neda_dela
شنبه 25 مهر 1388, 21:14 عصر
خب پس اون کدهاي ثبت را در همین دکمه موجود در فرم2 بنویس و دیگر نیازی به خط form1_load نیست.همین.
حالا می خوام یه پیشنهاد بدم.چرا نمی یای گرید ویو را در فرم2 قرار بدی؟ آخه معمولا وقتی اقراد ثبتی را انجام میدن، دوست دارن همون موقع ببینن، نه اینکه واسه دیدن اطلاعات جدید به یه فرم دیگه برن.
مرسی عزیزم
باید این راه رو هم امتحان کنم
بازم اگه مشکلی داشتم مزاحمت میشم.
از صبری که به خرج دادی متشکرم:بوس:

neda_dela
یک شنبه 26 مهر 1388, 21:24 عصر
خب پس اون کدهاي ثبت را در همین دکمه موجود در فرم2 بنویس و دیگر نیازی به خط form1_load نیست.همین.
حالا می خوام یه پیشنهاد بدم.چرا نمی یای گرید ویو را در فرم2 قرار بدی؟ آخه معمولا وقتی اقراد ثبتی را انجام میدن، دوست دارن همون موقع ببینن، نه اینکه واسه دیدن اطلاعات جدید به یه فرم دیگه برن.
دوباره سلام عزیزم
راستش مشکلش حل نشد اون پیشنهادی رو که دادی رو هم عملی کردم اما اصلا نتیجه نمیده راستش try رو کامل انجام نمیده و از نیمه کار می پره داخل catch حالا لینک برنامه و بانک رو گذاشتم تا ببینی البته این شمایی از برنامست برای اینکه حجمش بزرگ نشه
اولی لینک بانک هست که جدول st-shakhsi نیاز برنامه من هست:
http://persiandrive.com/918020
دومی هم که برنامه:

http://persiandrive.com/707959
در ضمن گفتم که اس کیو ال من 2000 و دات نت هم که 2005
منتظر پاسخت هستم

sara.f
یک شنبه 26 مهر 1388, 23:37 عصر
ســـــــــــــلام.
یعنی ندا از وقتی این پست را دادی، تا همین الان داشتم روی پروژت کار می کردم تا بالاخره درست شد. :لبخندساده:
ببین ندا جان، پروژت زیاد error داشت و بیشترشونم توی مسائلی بود که اگر دقت کرده بودی رخ نمی داد.
من واست پروژه و دیتا بیس اصلاح شده را میذارم.
اشکالاتتم برات می نویسم.
از اولش شروع می کنم:
1.چون کد اصلیت را در try,catch نذاشته بودی ومنم حواسم نبود، برنامه را که run می کردم هنگ می کرد و طول کشید تا فهمیدم چشه (کدهای اصلیت را در try,catch بذار)
2.نمی دونم چه کار کرده بودی که در quranDataset.designer.cs آرگومان اضافی تعریف شده بود و error میداد.
3.یک خط اساسی را ننوشته بودی که خطای شکل شماره یک را میداد(فایل ضمیمه)


da.InsertCommand.Connection = myConnection;

4.اسم دیتا بیس شما خط فاصله داره، بنابراین باید به این صورت نوشته بشه.


[st-shakhsi]

5.در دیتا بیست، data type بعضی از فیلدهایت را عوض کردم.
6. البته null بودن یا نبودن فیلدهایت را خودت دیگه تعیین کن(چون بعضی فیلدهات را واسه اینکه حوصله نداشتم هر بار وارد کنم، null کردم :لبخند:)
7.یکسری تغییرات جزئی در کدهات دادم که اگه خودت ببینی متوجه می شی.
8. کد نشان دادن اطلاعات دیتا بیس در گرید ویو را برات گذاشتم. این کد زیر


Form1_Load(sender, e);
در اینجا به درد میخوره که اگر اطلاعات جدیدی را در دیتا بیس وارد کردی (با لود مجدد فرم) همان موقع در دیتا گرید ویو نشون میده.
پیروز باشی دوستم.:لبخندساده:

neda_dela
دوشنبه 27 مهر 1388, 07:28 صبح
ســـــــــــــلام.
یعنی ندا از وقتی این پست را دادی، تا همین الان داشتم روی پروژت کار می کردم تا بالاخره درست شد. :لبخندساده:
ببین ندا جان، پروژت زیاد error داشت و بیشترشونم توی مسائلی بود که اگر دقت کرده بودی رخ نمی داد.
من واست پروژه و دیتا بیس اصلاح شده را میذارم.
اشکالاتتم برات می نویسم.
از اولش شروع می کنم:
1.چون کد اصلیت را در try,catch نذاشته بودی ومنم حواسم نبود، برنامه را که run می کردم هنگ می کرد و طول کشید تا فهمیدم چشه (کدهای اصلیت را در try,catch بذار)
2.نمی دونم چه کار کرده بودی که در quranDataset.designer.cs آرگومان اضافی تعریف شده بود و error میداد.
3.یک خط اساسی را ننوشته بودی که خطای شکل شماره یک را میداد(فایل ضمیمه)


da.InsertCommand.Connection = myConnection;

4.اسم دیتا بیس شما خط فاصله داره، بنابراین باید به این صورت نوشته بشه.


[st-shakhsi]

5.در دیتا بیست، data type بعضی از فیلدهایت را عوض کردم.
6. البته null بودن یا نبودن فیلدهایت را خودت دیگه تعیین کن(چون بعضی فیلدهات را واسه اینکه حوصله نداشتم هر بار وارد کنم، null کردم :لبخند:)
7.یکسری تغییرات جزئی در کدهات دادم که اگه خودت ببینی متوجه می شی.
8. کد نشان دادن اطلاعات دیتا بیس در گرید ویو را برات گذاشتم. این کد زیر


Form1_Load(sender, e);
در اینجا به درد میخوره که اگر اطلاعات جدیدی را در دیتا بیس وارد کردی (با لود مجدد فرم) همان موقع در دیتا گرید ویو نشون میده.
پیروز باشی دوستم.:لبخندساده:
وای عزیزم ببخشید به خدا
آخه من تازه کارم :خجالت:
فکر کردی دست از سرت بر می دارم نخیییییییر هر وقت سوال داشتم بازم می پرسم:بوس:

afravi
دوشنبه 27 مهر 1388, 08:02 صبح
ببخشید میشه بگید که چجوری فایل دیتابیس را ریستور کنم
با تشکر

neda_dela
دوشنبه 27 مهر 1388, 21:13 عصر
ببخشید میشه بگید که چجوری فایل دیتابیس را ریستور کنم
با تشکر
اس کیو ال من 2000 هست. توی 2000 روی پوشه database کلیک راست کن بعد all tasks و بعدش هم restore database

sara.f
دوشنبه 27 مهر 1388, 22:06 عصر
ببخشید میشه بگید که چجوری فایل دیتابیس را ریستور کنم
با تشکر
سلام
ابتدا عکس شماره یک را نگاه کنید.
بعد از آن که restore databas را انتخاب کردید، صفحه ای مانند عکس شماره 2 باز می شود.
نام data base را مانند شکل انتخاب می کنید (در اینجا quran) ، بعد مانند شکل from device و از آن browse روبروی آن آدرس دیتا بیسی که می خواید restore کنید را از کامپیوتر انتخاب می کنید، در صفحه ای که می خواید آدرس را انتخاب کنید، حتما اسم فایل اصلی را در file name بنویسید (در اینجا quran) و بعد ok , بعدشم فایل آماده restor کردن هست.

neda_dela
دوشنبه 27 مهر 1388, 22:40 عصر
ســـــــــــــلام.
یعنی ندا از وقتی این پست را دادی، تا همین الان داشتم روی پروژت کار می کردم تا بالاخره درست شد. :لبخندساده:
ببین ندا جان، پروژت زیاد error داشت و بیشترشونم توی مسائلی بود که اگر دقت کرده بودی رخ نمی داد.
من واست پروژه و دیتا بیس اصلاح شده را میذارم.
اشکالاتتم برات می نویسم.
از اولش شروع می کنم:
1.چون کد اصلیت را در try,catch نذاشته بودی ومنم حواسم نبود، برنامه را که run می کردم هنگ می کرد و طول کشید تا فهمیدم چشه (کدهای اصلیت را در try,catch بذار)
2.نمی دونم چه کار کرده بودی که در quranDataset.designer.cs آرگومان اضافی تعریف شده بود و error میداد.
3.یک خط اساسی را ننوشته بودی که خطای شکل شماره یک را میداد(فایل ضمیمه)


da.InsertCommand.Connection = myConnection;

4.اسم دیتا بیس شما خط فاصله داره، بنابراین باید به این صورت نوشته بشه.


[st-shakhsi]

5.در دیتا بیست، data type بعضی از فیلدهایت را عوض کردم.
6. البته null بودن یا نبودن فیلدهایت را خودت دیگه تعیین کن(چون بعضی فیلدهات را واسه اینکه حوصله نداشتم هر بار وارد کنم، null کردم :لبخند:)
7.یکسری تغییرات جزئی در کدهات دادم که اگه خودت ببینی متوجه می شی.
8. کد نشان دادن اطلاعات دیتا بیس در گرید ویو را برات گذاشتم. این کد زیر


Form1_Load(sender, e);
در اینجا به درد میخوره که اگر اطلاعات جدیدی را در دیتا بیس وارد کردی (با لود مجدد فرم) همان موقع در دیتا گرید ویو نشون میده.
پیروز باشی دوستم.:لبخندساده:
سارا جان مشکل من حل نشد
اصلا تحت هیچ شرایطی اجرا نمی شه و وارد catch میشه و پیغام خطا میده
مثلا وقتی مقادیر تمام فیلدها و از جمله عکس رو وارد می کنم این پیغام میاد:
string or binary data would be truncated the statement has been terminated.
و یا وقتی فیلد عکس خالیه و میخام ثبت بزنم (چون فیلد عکس اجازه خالی بودن داره تو بانک من ) این پیغام:
path cannot be nall
parameter name=path
اصلا نمی دونم باید چی کار کنم؟
در ضمن یه سوال دیگه چرا تو لود برنامه گفتی که موقع اجرا تمام گرید مارک بشه؟

sara.f
دوشنبه 27 مهر 1388, 23:13 عصر
سارا جان مشکل من حل نشد
اصلا تحت هیچ شرایطی اجرا نمی شه و وارد catch میشه و پیغام خطا میده
مثلا وقتی مقادیر تمام فیلدها و از جمله عکس رو وارد می کنم این پیغام میاد:
string or binary data would be truncated the statement has been terminated.
و یا وقتی فیلد عکس خالیه و میخام ثبت بزنم (چون فیلد عکس اجازه خالی بودن داره تو بانک من ) این پیغام:
path cannot be nall
parameter name=path
اصلا نمی دونم باید چی کار کنم؟
در ضمن یه سوال دیگه چرا تو لود برنامه گفتی که موقع اجرا تمام گرید مارک بشه؟
سلام
اصلا اجرا نمی شه؟!!!! یا اینکه وقتی مقادیر را وارد می کنی، error که گفتی را میده؟
من کد را امتحان کردم و درسته.
از دیتا بیسی که واست گذاشتم داری استفاده می کنی؟ آخه من data type ها را واست درست کرده بودم.
null بودن عکس در صورتی اشکال نداره که اصلا اون کد ذخیره را واسش ننویسی، ولی اگر این کد را نوشتی نمیذاره عکس را خالی بذاری.

در ضمن یه سوال دیگه چرا تو لود برنامه گفتی که موقع اجرا تمام گرید مارک بشه؟
یعنی چی تمام گرید مارک بشه؟!!

saeeedft
سه شنبه 28 مهر 1388, 01:18 صبح
با سلام، توی سایت بودم بازم دیدم مشکل این تاپیک حل نشده، دوست عزیز ندا خانم این کاری که میگم بکنید(البته با اجازه ی خانم sara.f:چشمک:)، توضیح این error

string or binary data would be truncated the statement has been terminatedاین error زمانی رخ میده که تبدیل نوع مناسب توی یک دستور انجام نشده باشه، حالا اگه خانم sara.f جواب گرفته با این کد و توی کامپیوتر شما error میده که ................ شما الان علت درج نشدن اطلاعاتتون فقط به خاطر عکسه(طبق error ای که گذاشتید) خودتون با دقت تکه کدهایی که با عکس کار میکنند بازبینی کنید و ببینید تغییر نوع ای لازمه یا نه؟ متاسفانه من الان در کامیپیوترم برنامه نصب نیست و امکان دیدن کدهای ارسالی شما رو ندارم، شما این کاری که گفتم رو اگه بکنید مطمئنا مشکلتون حل میشه، ضمنا اگه برنامه تون اصلا اجرا نمیشه اگه داده هایی از قبل تو بانکتون هست اونا رو به صورت دستی همشونو پاک کنید، در پایان هم یه آفرین به این sara خانم بگم از اینکه اینقدر پیگیر کار شماست:تشویق:

neda_dela
سه شنبه 28 مهر 1388, 08:16 صبح
سلام
اصلا اجرا نمی شه؟!!!! یا اینکه وقتی مقادیر را وارد می کنی، error که گفتی را میده؟
من کد را امتحان کردم و درسته.
از دیتا بیسی که واست گذاشتم داری استفاده می کنی؟ آخه من data type ها را واست درست کرده بودم.
null بودن عکس در صورتی اشکال نداره که اصلا اون کد ذخیره را واسش ننویسی، ولی اگر این کد را نوشتی نمیذاره عکس را خالی بذاری.

در ضمن یه سوال دیگه چرا تو لود برنامه گفتی که موقع اجرا تمام گرید مارک بشه؟
یعنی چی تمام گرید مارک بشه؟!!
همش مارک بشه یعنی این:


dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

اجرا میشه اما رکوردی رو ثبت نمی کنه یعنی همون خطاهایی که نوشتم میاد
بله همون رو ریستور کردم عزیزم
اما باز هم همون خطا رو میده
string or binary...

sara.f
سه شنبه 28 مهر 1388, 15:42 عصر
همش مارک بشه یعنی این:


dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

اجرا میشه اما رکوردی رو ثبت نمی کنه یعنی همون خطاهایی که نوشتم میاد
بله همون رو ریستور کردم عزیزم
اما باز هم همون خطا رو میده
string or binary...
سلام ندا جان.
نگاه کن عزیزم، اون برنامه ای که من واست فرستادم بر روی دیتا بیسی که در سایت گذاشتم، بدون کوچکترین error کار می کرد، بنابراین می خوام بدونم برنامه ای که من در این سایت واست گذاشتم این اشکالات را داره؟ یا خودت برنامه را تغییرات دادی؟
چون خطایی که می گی را می دونم به خاطر چیه! به خاطر data type فیلدهای دیتابیست هست و اولین بار هم واسه من همین خطا را داد و منم بخاطر همین بود که دیتا بیست را تغییر دادم، عکس را در ( varbinary(max گذاشتم وid را همون bigint که بود و سایر فیلدها را ( vnavarchar(50 .



dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;


ندا جان این خط را نمی خواد بنویسی، این را من قبلا برای کد upadet گذاشته بودم و واسه این بود که وقتی روی یک سلول از گرید ویو کلیک می کردم، تمام سطری که اون سلول در اون قرار داشت انتخاب می شد( آبی رنگ می شد) و اطلاعات تمام فیلدهای اون سطر را بعدا در textbox هام وارد می کردم.
برای کد insert شما به این خط نیازی نیست.

neda_dela
سه شنبه 28 مهر 1388, 22:22 عصر
با سلام، توی سایت بودم بازم دیدم مشکل این تاپیک حل نشده، دوست عزیز ندا خانم این کاری که میگم بکنید(البته با اجازه ی خانم sara.f:چشمک:)، توضیح این error

string or binary data would be truncated the statement has been terminatedاین error زمانی رخ میده که تبدیل نوع مناسب توی یک دستور انجام نشده باشه، حالا اگه خانم sara.f جواب گرفته با این کد و توی کامپیوتر شما error میده که ................ شما الان علت درج نشدن اطلاعاتتون فقط به خاطر عکسه(طبق error ای که گذاشتید) خودتون با دقت تکه کدهایی که با عکس کار میکنند بازبینی کنید و ببینید تغییر نوع ای لازمه یا نه؟ متاسفانه من الان در کامیپیوترم برنامه نصب نیست و امکان دیدن کدهای ارسالی شما رو ندارم، شما این کاری که گفتم رو اگه بکنید مطمئنا مشکلتون حل میشه، ضمنا اگه برنامه تون اصلا اجرا نمیشه اگه داده هایی از قبل تو بانکتون هست اونا رو به صورت دستی همشونو پاک کنید، در پایان هم یه آفرین به این sara خانم بگم از اینکه اینقدر پیگیر کار شماست:تشویق:
ازتون ممنونم
خودم فکر می کنم اشکال توی تعریف متغیر i باشه :


try
{
this.st_shakhsiTableAdapter.Fill(this.quranDataSet ._st_shakhsi);
string date = maskedTextBox1.Text;
string fname = textBox1.Text;
string fnme = textBox2.Text;
string jf = textBox3.Text;
string mnme = textBox4.Text;
string jm = textBox5.Text;
string bdate = maskedTextBox2.Text;
string lname = textBox15.Text;
string i = pictureBox1.ImageLocation;
SqlDataAdapter da = new SqlDataAdapter();
da.InsertCommand = new SqlCommand();
da.InsertCommand.Connection = myConnection;
string query = "insert into [st-shakhsi](tarikh,firstname,lastname,fname,fjob,mname,mjob,b irthday,pic)values(@date,@fname,@lname,@fnme,@jf,@ mnme,@jm,@bdate,@i)";
da.InsertCommand.CommandText = query;
da.InsertCommand.Parameters.AddWithValue("@date", date);
da.InsertCommand.Parameters.AddWithValue("@fname", fname);
da.InsertCommand.Parameters.AddWithValue("@lname", lname);
da.InsertCommand.Parameters.AddWithValue("@fnme", fnme);
da.InsertCommand.Parameters.AddWithValue("@jf", jf);
da.InsertCommand.Parameters.AddWithValue("@mnme", mnme);
da.InsertCommand.Parameters.AddWithValue("@jm", jm);
da.InsertCommand.Parameters.AddWithValue("@bdate", bdate);
System.IO.FileStream fs = new System.IO.FileStream(filename, System.IO.FileMode.Open);
byte[] imagecontent = new byte[fs.Length];
fs.Read(imagecontent, 0, (int)fs.Length);
SqlParameter ping = new SqlParameter("@i",imagecontent);
ping.SqlDbType = SqlDbType.Image;
da.InsertCommand.Parameters.Add(ping);
myConnection.Open();
da.InsertCommand.ExecuteNonQuery();
myConnection.Close();
//Form frm = new Form1();
Form1_Load(sender, e);
MessageBox.Show("ںلéںمں¢ ں êيهçی¢ يں©§ ¬§");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

چون i استرینگ تعریف شده اما نمی دونم باید i رو چی تعریف کنم؟

neda_dela
سه شنبه 28 مهر 1388, 22:28 عصر
سلام ندا جان.
نگاه کن عزیزم، اون برنامه ای که من واست فرستادم بر روی دیتا بیسی که در سایت گذاشتم، بدون کوچکترین error کار می کرد، بنابراین می خوام بدونم برنامه ای که من در این سایت واست گذاشتم این اشکالات را داره؟ یا خودت برنامه را تغییرات دادی؟
چون خطایی که می گی را می دونم به خاطر چیه! به خاطر data type فیلدهای دیتابیست هست و اولین بار هم واسه من همین خطا را داد و منم بخاطر همین بود که دیتا بیست را تغییر دادم، عکس را در ( varbinary(max گذاشتم وid را همون bigint که بود و سایر فیلدها را ( vnavarchar(50 .



dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;


ندا جان این خط را نمی خواد بنویسی، این را من قبلا برای کد upadet گذاشته بودم و واسه این بود که وقتی روی یک سلول از گرید ویو کلیک می کردم، تمام سطری که اون سلول در اون قرار داشت انتخاب می شد( آبی رنگ می شد) و اطلاعات تمام فیلدهای اون سطر را بعدا در textbox هام وارد می کردم.
برای کد insert شما به این خط نیازی نیست.
مرسی عزیزم
نه من کد رو تغییر ندادم
من فکر می کنم تعریف متغیر i اشکال داشته باشه
شما تو کد خودت که اون اولا برام گذاشتی ندیدم i رو تعریف کرده باشی اما من استرینگ تعریفش کردم
این عین کدی هست که همین الان برای دکمه ثبت نام روی برنامم هست


try
{
this.st_shakhsiTableAdapter.Fill(this.quranDataSet ._st_shakhsi);
string date = maskedTextBox1.Text;
string fname = textBox1.Text;
string fnme = textBox2.Text;
string jf = textBox3.Text;
string mnme = textBox4.Text;
string jm = textBox5.Text;
string bdate = maskedTextBox2.Text;
string lname = textBox15.Text;
string i = pictureBox1.ImageLocation;
SqlDataAdapter da = new SqlDataAdapter();
da.InsertCommand = new SqlCommand();
//SqlConnection myConnection = new SqlConnection(Program.strcon);
da.InsertCommand.Connection = myConnection;
string query = "insert into [st-shakhsi](tarikh,firstname,lastname,fname,fjob,mname,mjob,b irthday,pic)values(@date,@fname,@lname,@fnme,@jf,@ mnme,@jm,@bdate,@i)";
da.InsertCommand.CommandText = query;
da.InsertCommand.Parameters.AddWithValue("@date", date);
da.InsertCommand.Parameters.AddWithValue("@fname", fname);
da.InsertCommand.Parameters.AddWithValue("@lname", lname);
da.InsertCommand.Parameters.AddWithValue("@fnme", fnme);
da.InsertCommand.Parameters.AddWithValue("@jf", jf);
da.InsertCommand.Parameters.AddWithValue("@mnme", mnme);
da.InsertCommand.Parameters.AddWithValue("@jm", jm);
da.InsertCommand.Parameters.AddWithValue("@bdate", bdate);
System.IO.FileStream fs = new System.IO.FileStream(filename, System.IO.FileMode.Open);
byte[] imagecontent = new byte[fs.Length];
fs.Read(imagecontent, 0, (int)fs.Length);
SqlParameter ping = new SqlParameter("@i",imagecontent);
ping.SqlDbType = SqlDbType.Image;
da.InsertCommand.Parameters.Add(ping);
myConnection.Open();
da.InsertCommand.ExecuteNonQuery();
myConnection.Close();
//Form frm = new Form1();
Form1_Load(sender, e);
MessageBox.Show("ںلéںمں¢ ں êيهçی¢ يں©§ ¬§");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

}
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
try
{
if (dataGridView1.Rows.GetRowCount(DataGridViewElemen tStates.Selected) > 0)
{
MemoryStream ms = new MemoryStream((byte[])(dataGridView1.SelectedCells[0].Value));
pictureBox1.Image = Image.FromStream(ms);
}
}
catch (Exception t)
{
label5.Text = t.Message;
}

البته من این خط ها رو تغییر دادم به این شکل که فکر نکنم خیلی تغییر خاصی باشه:


da.InsertCommand.Parameters.AddWithValue("@date", date);

saeeedft
سه شنبه 28 مهر 1388, 22:48 عصر
ندا خانم شما اگه i رو هم نذاری مشکلی پیش نمیاد، اصلا این i که شما تعریف کردید تو کجا ازش استفاده کردید؟ نه ایراد کار i نیست، شما اگه error دیروز رو بااش مواجهه هسیتد که اون به نظر به خاطر عکسه، این وسط باید کداتونو طوری تغییر بدید که عکس درست بتونه توی بانک ثبت بشه، شما برای مطمئن شدن کار فیلد عکس رو از دیتا بیستون موقتا حذف کنید، کدهای مربوط به درج عکس رو هم همینطور، اون وقت ببینید بازم برنامه eror داره یا نه، تا معلوم شه که این error به طور کامل به خاطر عکسه یا چیز دیگه، اینطور کار بهتر پیش میره

sara.f
سه شنبه 28 مهر 1388, 23:52 عصر
ندا خانم شما اگه i رو هم نذاری مشکلی پیش نمیاد، اصلا این i که شما تعریف کردید تو کجا ازش استفاده کردید؟ نه ایراد کار i نیست، شما اگه error دیروز رو بااش مواجهه هسیتد که اون به نظر به خاطر عکسه، این وسط باید کداتونو طوری تغییر بدید که عکس درست بتونه توی بانک ثبت بشه، شما برای مطمئن شدن کار فیلد عکس رو از دیتا بیستون موقتا حذف کنید، کدهای مربوط به درج عکس رو هم همینطور، اون وقت ببینید بازم برنامه eror داره یا نه، تا معلوم شه که این error به طور کامل به خاطر عکسه یا چیز دیگه، اینطور کار بهتر پیش میره
منم با نظر آقای saeeedft تا یه جاییش موافقم.
ندا جان خط به خطی را که می گم انجام بده تا امیدوارم مشکلت حل بشه.
1. اول اینکه مشکل از i نیست و نیازی به تعریف i نیست و اصلا این خط را از برنامت حذف کن.
2. لطفا بدون اینکه کوچکترین تغییری در برنامه ای که در سایت گذاشتم بدی، برنامه را از سایت بگیر و همون موقع اجرا کن و ببین بازم خطایی که می گی را میده؟( البته با restore کردن دیتا بیسی که گذاشتم) ، نتیجه را بهم بگو.
3.
شما اگه error دیروز رو بااش مواجهه هسیتد که اون به نظر به خاطر عکسه
دوست من، فکر نمی کنم از عکس باشه، چرا که این خطا زمانی که داشتم با دیتا بیس ندا جان کار می کردم واسه منم ظاهر شد و زمانی که دیتا بیسش را چک کردم و data type ها را همون گونه که گفتم، عوض کردم دیگه برنامه بدرستی اجرا شد.
حالا به خاطر اینکه مطمئن بشیم همون صحبت آقای saeeedft را عملی کنید، یعنی بیاید کدهای ذخیره عکس را comment کنید و برنامه را اجرا کنید(نیازی به حذف فیلد عکس از دیتا بیس نیست، چون ما عکس را با خاصیت null بودن تعریف کردیم. ) یعنی کد را به صورت زیر بنویسید.


privatevoid button1_Click_1(object sender, EventArgs e)
{
try
{
this.st_shakhsiTableAdapter.Fill(this.quranDataSet ._st_shakhsi);
SqlDataAdapter da = newSqlDataAdapter();
da.InsertCommand = newSqlCommand();
da.InsertCommand.Connection = myConnection;
string query = "insert into [st-shakhsi](tarikh,firstname,lastname,fname,fjob,mname,mjob,b irthday)values(@date,@fname,@lname,@fnme,@jf,@mnme ,@jm,@bdate)";
da.InsertCommand.CommandText = query;
da.InsertCommand.Parameters.AddWithValue("@date", maskedTextBox1.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@fname", textBox1.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@lname", textBox15.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@fnme", textBox2.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@jf", textBox3.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@mnme", textBox4.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@jm", textBox5.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@bdate", maskedTextBox2.Text.Trim());
myConnection.Open();
da.InsertCommand.ExecuteNonQuery();
myConnection.Close();
Form1_Load(sender, e);
MessageBox.Show("اطلاعات با موفقیت وارد شد");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

}

خواهشا عین عین همین کد را برای دکمه ثبت بنویس و هیچگونه تغییری در هیچ جایی از کدت نده و بعد نتیجه را به ما اعلام کن.
پیروز باشی.

بچه های دیگه ای که این برنامه را از سایت گرفتن، یه اطلاعی بدن که آیا برنامه مشکلی داشته؟

neda_dela
چهارشنبه 29 مهر 1388, 22:53 عصر
منم با نظر آقای saeeedft تا یه جاییش موافقم.
ندا جان خط به خطی را که می گم انجام بده تا امیدوارم مشکلت حل بشه.
1. اول اینکه مشکل از i نیست و نیازی به تعریف i نیست و اصلا این خط را از برنامت حذف کن.
2. لطفا بدون اینکه کوچکترین تغییری در برنامه ای که در سایت گذاشتم بدی، برنامه را از سایت بگیر و همون موقع اجرا کن و ببین بازم خطایی که می گی را میده؟( البته با restore کردن دیتا بیسی که گذاشتم) ، نتیجه را بهم بگو.
3.
دوست من، فکر نمی کنم از عکس باشه، چرا که این خطا زمانی که داشتم با دیتا بیس ندا جان کار می کردم واسه منم ظاهر شد و زمانی که دیتا بیسش را چک کردم و data type ها را همون گونه که گفتم، عوض کردم دیگه برنامه بدرستی اجرا شد.
حالا به خاطر اینکه مطمئن بشیم همون صحبت آقای saeeedft را عملی کنید، یعنی بیاید کدهای ذخیره عکس را comment کنید و برنامه را اجرا کنید(نیازی به حذف فیلد عکس از دیتا بیس نیست، چون ما عکس را با خاصیت null بودن تعریف کردیم. ) یعنی کد را به صورت زیر بنویسید.


privatevoid button1_Click_1(object sender, EventArgs e)
{
try
{
this.st_shakhsiTableAdapter.Fill(this.quranDataSet ._st_shakhsi);
SqlDataAdapter da = newSqlDataAdapter();
da.InsertCommand = newSqlCommand();
da.InsertCommand.Connection = myConnection;
string query = "insert into [st-shakhsi](tarikh,firstname,lastname,fname,fjob,mname,mjob,b irthday)values(@date,@fname,@lname,@fnme,@jf,@mnme ,@jm,@bdate)";
da.InsertCommand.CommandText = query;
da.InsertCommand.Parameters.AddWithValue("@date", maskedTextBox1.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@fname", textBox1.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@lname", textBox15.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@fnme", textBox2.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@jf", textBox3.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@mnme", textBox4.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@jm", textBox5.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@bdate", maskedTextBox2.Text.Trim());
myConnection.Open();
da.InsertCommand.ExecuteNonQuery();
myConnection.Close();
Form1_Load(sender, e);
MessageBox.Show("اطلاعات با موفقیت وارد شد");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

}

خواهشا عین عین همین کد را برای دکمه ثبت بنویس و هیچگونه تغییری در هیچ جایی از کدت نده و بعد نتیجه را به ما اعلام کن.
پیروز باشی.

بچه های دیگه ای که این برنامه را از سایت گرفتن، یه اطلاعی بدن که آیا برنامه مشکلی داشته؟
درست شد عزیزم مرسی اما عکس ذخیره نمیشه :ناراحت:
در ضمن دفعه پیش که لینک برنامه من رو گذاشته بودی آخه یه سری کد از این بار اضافه داشت الان بعضی خط ها رو برداشتی خب منم که ناااااااااشی:قهقهه:
مقدار فیلد عکس تو بانک اینطوری <binary> ذخیره میشه
بانک هم همون بانکی هست که شما گذاشتی
مرسی حد اقل یه پله بالاتر رفتم حالا برای عکس چی کار کنم؟

sara.f
چهارشنبه 29 مهر 1388, 23:29 عصر
درست شد عزیزم مرسی اما عکس ذخیره نمیشه :ناراحت:
در ضمن دفعه پیش که لینک برنامه من رو گذاشته بودی آخه یه سری کد از این بار اضافه داشت الان بعضی خط ها رو برداشتی خب منم که ناااااااااشی:قهقهه:
مقدار فیلد عکس تو بانک اینطوری <binary> ذخیره میشه
بانک هم همون بانکی هست که شما گذاشتی
مرسی حد اقل یه پله بالاتر رفتم حالا برای عکس چی کار کنم؟
خب خدا را شکر که تا اینجا درست شد.
حالا کد زیر را در دکمه ثبت بنویس، بدون هیچ گونه تغییرات.


private void button1_Click_1(object sender, EventArgs e)
{
try
{
this.st_shakhsiTableAdapter.Fill(this.quranDataSet ._st_shakhsi);
SqlDataAdapter da = new SqlDataAdapter();
da.InsertCommand = new SqlCommand();
da.InsertCommand.Connection = myConnection;
string query = "insert into [st-shakhsi](tarikh,firstname,lastname,fname,fjob,mname,mjob,b irthday,pic)values(@date,@fname,@lname,@fnme,@jf,@ mnme,@jm,@bdate,@i)";
da.InsertCommand.CommandText = query;
da.InsertCommand.Parameters.AddWithValue("@date", maskedTextBox1.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@fname", textBox1.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@lname", textBox15.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@fnme", textBox2.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@jf", textBox3.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@mnme", textBox4.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@jm", textBox5.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@bdate", maskedTextBox2.Text.Trim());
System.IO.FileStream fs = new System.IO.FileStream(filename, System.IO.FileMode.Open);
byte[] imagecontent = new byte[fs.Length];
fs.Read(imagecontent, 0, (int)fs.Length);
SqlParameter ping = new SqlParameter("@i", imagecontent);
ping.SqlDbType = SqlDbType.Image;
da.InsertCommand.Parameters.Add(ping);
myConnection.Open();
da.InsertCommand.ExecuteNonQuery();
myConnection.Close();
Form1_Load(sender, e);
MessageBox.Show("اطلاعات با موفقیت وارد شد");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

}
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
try
{
if (dataGridView1.Rows.GetRowCount(DataGridViewElemen tStates.Selected) > 0)
{
MemoryStream ms = new MemoryStream((byte[])(dataGridView1.SelectedCells[0].Value));
pictureBox1.Image = Image.FromStream(ms);
}
}
catch (Exception t)
{
label5.Text = t.Message;
}
}

ببین آیا error میده؟ و اگر error داد، بهم حتما بگو که چه error ای داده؟

neda_dela
پنج شنبه 30 مهر 1388, 13:39 عصر
خب خدا را شکر که تا اینجا درست شد.
حالا کد زیر را در دکمه ثبت بنویس، بدون هیچ گونه تغییرات.


privatevoid button1_Click_1(object sender, EventArgs e)
{
try
{
this.st_shakhsiTableAdapter.Fill(this.quranDataSet ._st_shakhsi);
SqlDataAdapter da = newSqlDataAdapter();
da.InsertCommand = newSqlCommand();
da.InsertCommand.Connection = myConnection;
string query = "insert into [st-shakhsi](tarikh,firstname,lastname,fname,fjob,mname,mjob,b irthday,pic)values(@date,@fname,@lname,@fnme,@jf,@ mnme,@jm,@bdate,@i)";
da.InsertCommand.CommandText = query;
da.InsertCommand.Parameters.AddWithValue("@date", maskedTextBox1.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@fname", textBox1.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@lname", textBox15.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@fnme", textBox2.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@jf", textBox3.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@mnme", textBox4.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@jm", textBox5.Text.Trim());
da.InsertCommand.Parameters.AddWithValue("@bdate", maskedTextBox2.Text.Trim());
System.IO.FileStream fs = new System.IO.FileStream(filename, System.IO.FileMode.Open);
byte[] imagecontent = newbyte[fs.Length];
fs.Read(imagecontent, 0, (int)fs.Length);
SqlParameter ping = newSqlParameter("@i", imagecontent);
ping.SqlDbType = SqlDbType.Image;
da.InsertCommand.Parameters.Add(ping);
myConnection.Open();
da.InsertCommand.ExecuteNonQuery();
myConnection.Close();
Form1_Load(sender, e);
MessageBox.Show("اطلاعات با موفقیت وارد شد");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

}
privatevoid dataGridView1_SelectionChanged(object sender, EventArgs e)
{
try
{
if (dataGridView1.Rows.GetRowCount(DataGridViewElemen tStates.Selected) > 0)
{
MemoryStream ms = newMemoryStream((byte[])(dataGridView1.SelectedCells[0].Value));
pictureBox1.Image = Image.FromStream(ms);
}
}
catch (Exception t)
{
label5.Text = t.Message;
}
}

ببین آیا error میده؟ و اگر error داد، بهم حتما بگو که چه error ای داده؟
آره خطا داد

string or binary data would be truncated
the statement has been terminated

sara.f
پنج شنبه 30 مهر 1388, 14:03 عصر
آره خطا داد

string or binary data would be truncated
the statement has been terminated
سلام ندا جان
من الان یه امتحانی کردم ، اون برنامه ای که واست گذاشته بودم و دیتابیسش کاملا درسته و هیچ مشکلی نداره.
همون طور که قبلا هم گفتم مشکل شما در دیتا بیستون هست.
شما sql serever 2000 داری؟
اگر اینطوره لطفا ببین که فیلد pic در دیتا بیس شما دارای چه data type هست؟

neda_dela
پنج شنبه 30 مهر 1388, 18:36 عصر
سلام ندا جان
من الان یه امتحانی کردم ، اون برنامه ای که واست گذاشته بودم و دیتابیسش کاملا درسته و هیچ مشکلی نداره.
همون طور که قبلا هم گفتم مشکل شما در دیتا بیستون هست.
شما sql serever 2000 داری؟
اگر اینطوره لطفا ببین که فیلد pic در دیتا بیس شما دارای چه data type هست؟
بله 2000 هست
فیلد pic از نوع varbinary
فیلد های firstname و lastname و fname و fjob و mname و mjob از نوع nvarchar
فیلدهای birthday و tarikh از نوع text
و فیلد id از نوع bigint

sara.f
پنج شنبه 30 مهر 1388, 18:54 عصر
بله 2000 هست
فیلد pic از نوع varbinary
فیلد های firstname و lastname و fname و fjob و mname و mjob از نوع nvarchar
فیلدهای birthday و tarikh از نوع text
و فیلد id از نوع bigint

سلام

فیلد pic از نوع varbinary
مشکل دقیقا همین جاست
باید فیلد را ( varbinary (MAX انتخاب کنی، چون در غیر اینصورت عکس توش جاش نمی شه :چشمک:
منم در دیتا بیسی که گذاشته بودم ( varbinary (MAX استفاده کرده بودم، شما هم که می گی همون دیتا بیس من را restore کردی، حتی فیلدهای firstname و lastname و fname و fjob و mname و mjob و birthday و tarikh از نوع nvarchar(50) بودن، حالا چرا عوض شدن؟
حالا یه کاری بکن، بیا برو توی SQL server و در قسمت script این جدولت، data type ها را دستی عوض کن. بلدی؟

neda_dela
پنج شنبه 30 مهر 1388, 21:49 عصر
سلام

مشکل دقیقا همین جاست
باید فیلد را ( varbinary (MAX انتخاب کنی، چون در غیر اینصورت عکس توش جاش نمی شه :چشمک:
منم در دیتا بیسی که گذاشته بودم ( varbinary (MAX استفاده کرده بودم، شما هم که می گی همون دیتا بیس من را restore کردی، حتی فیلدهای firstname و lastname و fname و fjob و mname و mjob و birthday و tarikh از نوع nvarchar(50) بودن، حالا چرا عوض شدن؟
حالا یه کاری بکن، بیا برو توی SQL server و در قسمت script این جدولت، data type ها را دستی عوض کن. بلدی؟
این همون دیتا بیسه من که ریستورش کردم نوع داده ها همینی بود که گفته بودم
فیلد pic از نوع varbinary هست 2000 فقط binary و varbinary داره وقتی هم که varbinary رو انتخاب می کنی خودش پیشفرض length اون رو 50 می ذاره اما نمی دونم که چه طوری میشه که max میشه:اشتباه:
فیلدهای نام و نام خانوادگی و ... هم همون nvarchar هست که length اونا 50 هست حالا من نمی دونم تو ورژن اس کیو ال شما اینا چه طوری تعیین میشن؟
نه من متاسفانه با اسکریپت ها کار نکردم:گیج:

saeeedft
پنج شنبه 30 مهر 1388, 23:19 عصر
خانم ندا خانم شما به جای 50 بذار 8000 ، همون طور که حدس زده بودم این مشکل شما از عکس بود منتها من چون برنامه تون رو ندیده بودم در جریان نبودم شما data type رو چی در نظر گرفتید

neda_dela
جمعه 01 آبان 1388, 09:36 صبح
خانم ندا خانم شما به جای 50 بذار 8000 مشکل حله، همون طور که حدس زده بودم این مشکل شما از عکس بود منتها من چون برنامه تون رو ندیده بودم در جریان نبودم شما data type رو چی در نظر گرفتید
دیتا تایپ ها رو که تو پست قبلی گفتم که!
برای عکس varbinary با طول 50
البته 8000 رو هم امتحان کردم اما بازم همون خطا رو داد

saeeedft
جمعه 01 آبان 1388, 11:06 صبح
دیتا تایپ ها رو که تو پست قبلی گفتم که!بله من منظورم از ندونستن دو روز قبل بود ،نه دیشب ، حالا باز هم همون خطای قبلی رو میده؟(همونی که چند روز پیش گذاشته بودید) اگه همون بود بگید تا راه حل آخر رو بگم، خودم هم برنامه رو سیستمم نصب نیست تا برنامه تون رو ببینم (خدا بگم این عکس رو چی کار کنه که هر چی میکشیم از دست این عکسه):قهقهه:

neda_dela
جمعه 01 آبان 1388, 12:08 عصر
بله من منظورم از ندونستن دو روز قبل بود ،نه دیشب ، حالا باز هم همون خطای قبلی رو میده؟(همونی که چند روز پیش گذاشته بودید) اگه همون بود بگید تا راه حل آخر رو بگم، خودم هم برنامه رو سیستمم نصب نیست تا برنامه تون رو ببینم (خدا بگم این عکس رو چی کار کنه که هر چی میکشیم از دست این عکسه):قهقهه:
از همه دوستانم ممنونم به خاطر صبر و حوصله زیادشون
نوع pic رو عوض کردم و image گذاشتم و بالاخره درست شد و حالا عکس رو نشون میده تو دیتا گرید. توی بانک هم این طوری ذخیره میشه<binary>. فقط فکر کنم باید طول و عرض سلول های گریدم رو زیاد کنم چون فعلا فقط دماغ طرف دیده میشه:قهقهه::لبخند:
البته دوستان راه حل هاتون رو بازم بهم بگید برای هر مشکلی خوبه که چند تا راه حل داشته باشم. منتظرم
اینم برای دوستانم :قلب::تشویق:

saeeedft
جمعه 01 آبان 1388, 12:24 عصر
ندا خانم آخرین راه حل رو که میخواستم بگم رو خودتون پیدا کردید، اما.............. کل هدف ما این بود که این کار نشه، یعنی شما image در نظر نگیرید، ضمنا شما size modeعکستون رو هم zoom کنید تا فقط دماغ طرفو نشون نده:بامزه:

neda_dela
جمعه 01 آبان 1388, 13:27 عصر
ندا خانم آخرین راه حل رو که میخواستم بگم رو خودتون پیدا کردید، اما.............. کل هدف ما این بود که این کار نشه، یعنی شما image در نظر نگیرید، ضمنا شما size modeعکستون رو هم zoom کنید تا فقط دماغ طرفو نشون نده:بامزه:
این سایز مد که میگین کجاست؟:متفکر:
توضیح بیشتر میشه بدین

saeeedft
جمعه 01 آبان 1388, 14:02 عصر
گوشه picturebox تون کلیک کنید، اونجا میبینیدش

sara.f
جمعه 01 آبان 1388, 14:06 عصر
گوشه picturebox تون کلیک کنید، اونجا میبینیدش
سلام
اول اینکه خوشحالم که مشکل ندا جان حل شد.
دوم اینکه فکر کنم منظورشون picturebox نبود بلکه نمایش در دیتا گرید ویو هست.

neda_dela
جمعه 01 آبان 1388, 19:39 عصر
گوشه picturebox تون کلیک کنید، اونجا میبینیدش
دیدمش و تغییرش دادم اما نشد که :متفکر:
توی properties گرید رو هم گشتم اما برای تغییر سایز سلول ها چیزی ندیدم . برای تغییر سایز خود گرید داشت و همچنین تغییر طول و عرض هدر گرید اما برای سلول ها نه

neda_dela
جمعه 01 آبان 1388, 19:45 عصر
سلام
اول اینکه خوشحالم که مشکل ندا جان حل شد.
دوم اینکه فکر کنم منظورشون picturebox نبود بلکه نمایش در دیتا گرید ویو هست.
آره خب منظورم همین بود
راستی یه سوال سوای این قضیه:
شما گفتی که بهتره که توی صفحه ای که کاربر اطلاعات رکورد ها رو وارد می کنه گرید هم اونجا باشه تا هر رکوردی که وارد میشه کاربر اون رو ببینه این درست
حالا اگه تعداد فیلد های یه جدول زیاد باشه چی؟ مثلا حدود 20 تا یا بیشتر فیلد داشته باشه منظورم اینه که این طوری design فرم به هم می خوره اندازه فرمم خیلی بزرگ میشه
یه سوال دیگه هم این که : اگه یه رکوردی موقتا تو سیستم عکس نداشته باشه باید چه کرد چون شما گفتی که نمیشه با این دستورات عکس خالی باشه؟:بوس:

sara.f
جمعه 01 آبان 1388, 20:08 عصر
منم نگاه کردم، ولی property برای تغییر سایز سلول ها ندیدم.
فکر کنم باید وقتی برنامه اجرا شد، اونوقت دستی تغییر بدی، البته شایدم از بچه ها بدونن که چه باید کرد!

راستی یه سوال سوای این قضیه:
شما گفتی که بهتره که توی صفحه ای که کاربر اطلاعات رکورد ها رو وارد می کنه گرید هم اونجا باشه تا هر رکوردی که وارد میشه کاربر اون رو ببینه این درست
حالا اگه تعداد فیلد های یه جدول زیاد باشه چی؟ مثلا حدود 20 تا یا بیشتر فیلد داشته باشه منظورم اینه که این طوری design فرم به هم می خوره اندازه فرمم خیلی بزرگ میشه

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

یه سوال دیگه هم این که : اگه یه رکوردی موقتا تو سیستم عکس نداشته باشه باید چه کرد چون شما گفتی که نمیشه با این دستورات عکس خالی باشه؟:بوس:
خودمم با این قسمت مشکل دارم و هنوز نتونستم را هی اساسی پیدا کنم.
در حال حاضر یا باید بالاخره یه عکسی از طرف از یه جایی بیاری:لبخند:
یا اینکه خودت یه تصویر به این صورت درست کنی که مثلا یه صفحه باشه که روش نوشته باشه " بدون تصویر" :چشمک:
اگر راه خوبی پیدا کردم به شما هم می گم.

aminvb
جمعه 01 آبان 1388, 20:23 عصر
همین کاری که گفتی چطوری انجام بدیم خوب؟

sara.f
جمعه 01 آبان 1388, 20:30 عصر
همین کاری که گفتی چطوری انجام بدیم خوب؟
بله؟!
الان منظورتون کدوم کار هست؟

neda_dela
جمعه 01 آبان 1388, 21:14 عصر
منم نگاه کردم، ولی property برای تغییر سایز سلول ها ندیدم.
فکر کنم باید وقتی برنامه اجرا شد، اونوقت دستی تغییر بدی، البته شایدم از بچه ها بدونن که چه باید کرد!

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

خودمم با این قسمت مشکل دارم و هنوز نتونستم را هی اساسی پیدا کنم.
در حال حاضر یا باید بالاخره یه عکسی از طرف از یه جایی بیاری:لبخند:
یا اینکه خودت یه تصویر به این صورت درست کنی که مثلا یه صفحه باشه که روش نوشته باشه " بدون تصویر" :چشمک:
اگر راه خوبی پیدا کردم به شما هم می گم.
خوبه حداقل از نظر گرافیک مشکلی ندارم فتوشاپ فتوشاپ فتوشاپ:قهقهه:
برای سایز گرید هم دوباره سوالم رو با یه عنوان دیگه مطرح می کنم شاید یکی باشه بدونه
ممنونم عزیزم ازت و از همه اونایی که کمکم کردن

saeeedft
شنبه 02 آبان 1388, 00:23 صبح
فکر کنم باید وقتی برنامه اجرا شد، اونوقت دستی تغییر بدی این کار کار قشنگی نیست که کاربر با برنامه شما بازی کنه، خب اگه می خواهید توی گرید هم میتونید اون کار رو انجام بدید، در property برید روی columns، فیلد عکستون رو image layout اش رو zoom کنید، شاد باشید

sara.f
شنبه 02 آبان 1388, 00:31 صبح
این کار کار قشنگی نیست که کاربر با برنامه شما بازی کنه، خب اگه می خواهید توی گرید هم میتونید اون کار رو انجام بدید، در property برید روی columns، فیلد عکستون رو image layout اش رو zoom کنید، شاد باشید
سلام:لبخندساده:
آره به نظر منم کار قشنگی نیست، ولی منم نمی دونستم را ه دیگه ای هم هست و گفتم اگه راه دیگه ای بچه ها معرفی کردن از اون استفاده کن.

در property برید روی columns، فیلد عکستون رو image layout اش رو zoom کنید،
با این کار عکس خیلی کوچیک میشه، باید یه کاری کرد که خود سلول های دیتا گرید بزرگتر بشند.
http://barnamenevis.org/forum/showthread.php?t=185841

neda_dela
یک شنبه 03 آبان 1388, 21:58 عصر
سلام:لبخندساده:
آره به نظر منم کار قشنگی نیست، ولی منم نمی دونستم را ه دیگه ای هم هست و گفتم اگه راه دیگه ای بچه ها معرفی کردن از اون استفاده کن.

با این کار عکس خیلی کوچیک میشه، باید یه کاری کرد که خود سلول های دیتا گرید بزرگتر بشند.
http://barnamenevis.org/forum/showthread.php?t=185841


تغییرات رو توی پروژه اصلی اعمال کردم یکی دو تا مشکل جدید پیش اومد:
1.کد زیر فکر کنم برای زمانی بود که وقتی یه ردیف از گرید انتخاب میشه عکس رو توی پیکچر باکس نمایش بده


private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
try
{
if (dataGridView1.Rows.GetRowCount(DataGridViewElemen tStates.Selected) > 0)
{
MemoryStream ms = new MemoryStream((byte[])(dataGridView1.SelectedCells[0].Value));
pictureBox1.Image = Image.FromStream(ms);
}
}
catch (Exception t)
{
label9.Text = t.Message;
}
}


اگه اینطوره که عمل نمی کنه وقتی که کل گرید رو انتخاب می کنم این پیغام به جای لیبل 9 ظاهر میشه:


Buffer cannot be null
Parameter name: buffer
و وقتی هم که یه ردیف از گرید رو انتخاب می کنم این پیغام ظاهر میشه:



Unable to cast object of type ‘system.int64’ to ‘byte[]’



2. حالا مشکل دوم:
من قبل از تغییر در تیبل قدیمم توی همین فرم امکاناتی مثل جستجو بر اساس یه فیلد خاص و یا حذف یه رکورد جدید رو گذاشته بودم اما حالا اصلا عمل نمی کنه این در حالیه که قبلا کاملا درست عمل می کرد. وقتی هم که برنامه رو خط به خط اجرا می کنم خطای ظاهرا همه دستورات رو درست انجام میده ولی هیچ خطایی نمیده . توی try و catch هم گذاشتم اما هیچ خطایی نداد. کدهاش رو می ذارم :
کد دکمه جستجو:


private void button5_Click(object sender, EventArgs e)
{
try
{
if (textBox1.Text.Length != 0)
if (stshakhsiBindingSource.Filter == null || stshakhsiBindingSource.Filter.Length == 0)
{
stshakhsiBindingSource.Filter = "lastname like'%" + textBox1.Text + "%'";
}
else
{
stshakhsiBindingSource.Filter += "and lastname like'%" + textBox1.Text + "%'";
}
}
catch (Exception t)
{
label5.Text = t.Message;
}
}


این هم کد دکمه حذف:


private void button9_Click(object sender, EventArgs e)

{
try
{
if (dataGridView1.SelectedRows.Count > 0)
{
if (MessageBox.Show("™یں ںھ ¥¨ه ںیë ©کي©§ êلê‍ëی§؟", "ں¦لں©", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
{
stshakhsiBindingSource.RemoveCurrent();
st_shakhsiTableAdapter.Update(quranDataSet);
}
}
else
MessageBox.Show("éلهں ©کي©§ êي©§ ëâ© ©ں ں뢦ں ëêںیی§");
}
catch (Exception t)
{
label5.Text = t.Message;
}
}

sara.f
یک شنبه 03 آبان 1388, 22:32 عصر
سلام عزیزم.خوبی خانمی؟

می گم ندا جان مگه برنامت تا پیش از این درست کار نمی کرد؟ ( به این سوالم حتما جواب بده)
الان چی شده که به این مشکلات برخوردی؟ کدی را حذف یا اضافه کردی؟
در مورد مشکل اول) فکر می کنم این خط کد را حذف کردی از برنامت درسته؟


dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

اگر میخوای با انتخاب یک سطر، عکس را نشون بده، باید این خط را بنویسی و در ضمن باید یک سطر را انتخاب کنی و نه کل دیتا گرید ویو.

در مورد مشکل دوم)
نمی دونم چرا اینطوریه؟ اینطوری نمی تونم بگم.
اول بگو که برنامت از کی دیگه جستجو و حذفش اینطوری شد؟
می تونی برنامتو بذاری نگاه کنم.

JaguarXF
یک شنبه 03 آبان 1388, 22:35 عصر
اصلا به نظر من خیلی غیر بهینه هست که عکسها رو داخل گرید همراه با سایر اطلاعات نشان دهیم.
راه بهتر این هست که هرکسی عکسی داشته در یک فیلد از اون گرید ویو در مقابلش یک آیکون کوچک قرار داده بشه . به این معنی که رکورد این شخص دارای تصویر نیز هست . و در صورت تمایل مثلا با دبل کلیک کردن روی اون عکس بتونند تصویر اصلی رو ببینند.

neda_dela
یک شنبه 03 آبان 1388, 23:38 عصر
سلام عزیزم.خوبی خانمی؟

می گم ندا جان مگه برنامت تا پیش از این درست کار نمی کرد؟ ( به این سوالم حتما جواب بده)
الان چی شده که به این مشکلات برخوردی؟ کدی را حذف یا اضافه کردی؟
در مورد مشکل اول) فکر می کنم این خط کد را حذف کردی از برنامت درسته؟


dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

اگر میخوای با انتخاب یک سطر، عکس را نشون بده، باید این خط را بنویسی و در ضمن باید یک سطر را انتخاب کنی و نه کل دیتا گرید ویو.

در مورد مشکل دوم)
نمی دونم چرا اینطوریه؟ اینطوری نمی تونم بگم.
اول بگو که برنامت از کی دیگه جستجو و حذفش اینطوری شد؟
می تونی برنامتو بذاری نگاه کنم.
چرا درست کار می کرد اتفاقا اما قبل از اعمال این تغییرات یعنی اصلا قبل ار اینکه تصمیم به ذخیره عکس توی بانک داشته باشم. اما من تیبل هامو تغییر دادم اون برنامه ای که گذاشته بودم یه مثال بود حالا اون نتایجی رو که از کمک های شما بهش رسیدم رو تو برنامه اصلی اعمال کردم و حالا به این مشکلات برخورد کردم.
این خط کدی که گذاشتی رو دقیقا باید کجا قرارش بدم؟
برنامه رو انشالله فردا برات می ذارم
از زمانی که همین تغییراتی رو برای عکس بود روش اعمال کردم این طوری شد

sara.f
یک شنبه 03 آبان 1388, 23:48 عصر
چرا درست کار می کرد اتفاقا اما قبل از اعمال این تغییرات یعنی اصلا قبل ار اینکه تصمیم به ذخیره عکس توی بانک داشته باشم. اما من تیبل هامو تغییر دادم اون برنامه ای که گذاشته بودم یه مثال بود حالا اون نتایجی رو که از کمک های شما بهش رسیدم رو تو برنامه اصلی اعمال کردم و حالا به این مشکلات برخورد کردم.
این خط کدی که گذاشتی رو دقیقا باید کجا قرارش بدم؟
برنامه رو انشالله فردا برات می ذارم
از زمانی که همین تغییراتی رو برای عکس بود روش اعمال کردم این طوری شد
این خط را می تونید در form_load بذارید.
بسیار خب،پس احتمالا در برنامه اصلیت کدی را کم و زیاد کردی،وگرنه کدهایی که من به شما دادم را بارها امتحان کردم و خودتونم چند روز پیش گفتی که برنامت درست شده، پس توی برنامه اصلیت یه اشتباهی کردی، برنامت را بذار ، امیدوارم که مشکلت زودتر برطرف بشه .

neda_dela
دوشنبه 04 آبان 1388, 11:15 صبح
این خط را می تونید در form_load بذارید.
بسیار خب،پس احتمالا در برنامه اصلیت کدی را کم و زیاد کردی،وگرنه کدهایی که من به شما دادم را بارها امتحان کردم و خودتونم چند روز پیش گفتی که برنامت درست شده، پس توی برنامه اصلیت یه اشتباهی کردی، برنامت را بذار ، امیدوارم که مشکلت زودتر برطرف بشه .
سلام عزیزم
اینم لینک برنامه اصلی من البته یه کم حجمش بیشتره بانکش هم که همونه
http://persiandrive.com/931136