PDA

View Full Version : سوال: مشکل در پایگاه داده sqlite و حواشی آن!



seyed.javad.majidi
چهارشنبه 10 اردیبهشت 1393, 21:22 عصر
سلام دستم به دامنتون!
یعنی الان میخوان از یه خطایی بگم که خوب هرکی ببینه کف میکنه از بس بی ربطه :|
من دارم مشخصات کاربر رو insert میکنم خوب در برخی مواقع ممکنه کاربر همون موقع هوس کنه تصویر هم بزاره. اما همه چیز خوب هست ولی وقتی کاربر تصویر رو انتخاب میکنه و بعد میره برای insert کردن که میره برنامه خطا میده که تصویرش پیوست شد. جالبه من تصویر رو در دیتا بیس ذخیره نمیکنم فق یه چیزی مثل شماره عکس و جالبه که بخش انتخاب عکس هم هیچ ربطی به دیتا بیس نداره که بگیم شاید مشکل از اونجاس من خیلی درگیرش شدم کد ها رو بلوک کردم دونه دونه تست کردم همه چیز خوبه ولی وقتی کار روی دکمه انتخاب تصویر کلیک میکنه و اگر کاربر تصویری انتخاب کنه دیگه کلیک ثبت کار بر از کار میفته یعنی من به این نتیجه رسیدم در صورتی که شرط:
if (openFileDialog1.ShowDialog() == DialogResult.OK)
برقرار باشه یعنی کاربر تصویری رو لود کرده باشه برنامه به حطا برخواهد خورد :| یعنی خووووو

کد کلیک انتخاب تصویر:

try
{


openFileDialog1.Filter = "JPG Image (*.jpg;png)|*.jpg;*.png";




if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
Size sz = new System.Drawing.Size(150, 200);
Image im = new Bitmap(openFileDialog1.FileName);
bt = new Bitmap(im, sz);
pictureBox1.Image = bt;
im.Dispose();
t = true;
}
}
catch { }

و کد ثبت کاربر:

try
{
if ((txtname.TextLength == 0) || (txtfamil.TextLength == 0) || (txtshmeli.TextLength == 0) || (string.IsNullOrEmpty(txtshmeli.Text)) || (string.IsNullOrWhiteSpace(txtshmeli.Text)))
{
MessageBox.Show("لطفا فیلدهای قرمز را پر کنید.", "مرکز بهداشت", MessageBoxButtons.OK, MessageBoxIcon.Error);
label20.BackColor = Color.Red;
label21.BackColor = Color.Red;
label9.BackColor = Color.Red;


return;
}
scon.Close();
scon.Open();


SQLiteCommand scom = new SQLiteCommand("select sh_meli from employ where sh_meli='" + txtshmeli.Text + "'", scon);
object c = scom.ExecuteScalar();
if (c != null)
{
MessageBox.Show("کد ملی تکراری است", "مرکز بهداشت", MessageBoxButtons.OK, MessageBoxIcon.Error);


scon.Close();

return;
}
scom.CommandText = "select max(id) from employ";
c = scom.ExecuteScalar();
int id = 1;
if (c != DBNull.Value)
{
id = id + Convert.ToInt32(c);
}
scom.CommandText = "select max(pic) from employ";
c = scom.ExecuteScalar();
int idpic = 1;
if (c != DBNull.Value)
{
idpic = idpic + Convert.ToInt32(c);
}
if (t == true)
{
pictureBox1.Image.Save("data/pic/" + idpic.ToString());
pc = idpic.ToString();
}


scom.CommandText = "insert into employ " +
"(id,madrak,nm,famil,sh_sh,dt_b,nm_pedar,sh_meli,po st_sazeman,dt_estekhdam,mahale_khedmat,phone_numbe r,mobile_number,email,vaz_estekhdam,pic)" +
" values(@id,@madrak,@nm,@famil,@sh_sh,@dt_b,@nm_ped ar,@sh_meli,@post_sazeman,@dt_estekhdam,@mahale_kh edmat,@phone_number,@mobile_number,@email,@vaz_est ekhdam,@pic)";


scom.Parameters.AddWithValue("@id", id);
scom.Parameters.AddWithValue("@nm", txtname.Text);
scom.Parameters.AddWithValue("@famil", txtfamil.Text);
scom.Parameters.AddWithValue("@sh_sh", txtshsh.Text);
scom.Parameters.AddWithValue("@dt_b", dt.ShamsiDate);
scom.Parameters.AddWithValue("@nm_pedar", txtpedar.Text);
scom.Parameters.AddWithValue("@sh_meli", txtshmeli.Text);
scom.Parameters.AddWithValue("@post_sazeman", txtpost.Text);
scom.Parameters.AddWithValue("@dt_estekhdam", tes.ShamsiDate);
scom.Parameters.AddWithValue("@mahale_khedmat", txtmlkh.Text);
scom.Parameters.AddWithValue("@phone_number", txtphone.Text);
scom.Parameters.AddWithValue("@mobile_number", txtmobile.Text);
scom.Parameters.AddWithValue("@email", txtemail.Text);
scom.Parameters.AddWithValue("@vaz_estekhdam", comboBox1.Text);
scom.Parameters.AddWithValue("@madrak", txtmadrak.Text);
scom.Parameters.AddWithValue("@pic", pc);
scom.ExecuteNonQuery();
scon.Close();
scom.Dispose();
DialogResult mes = MessageBox.Show("ثبت با موفقیت انجام شد.آیا مایل به ثبت پرسنلی جدید هستید؟", "مرکز بهداشت شهرستان کاشمر", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (mes == DialogResult.No)
{
Form1 f = (Form1)this.FindForm();
UserControl1 u = new UserControl1();
u.Dock = DockStyle.Fill;
f.panel1.Controls.Clear();
f.panel1.Controls.Add(u);
}
else
{
pictureBox1.Image = null;
txtname.Text = txtfamil.Text = txtshsh.Text = txtshmeli.Text = txtpedar.Text = dt.ShamsiDate = txtmlkh.Text = txtemail.Text = txtmadrak.Text = txtphone.Text = txtpost.Text = tes.ShamsiDate = txtmobile.Text = "";
pictureBox1.Image = pictureBox2.Image;


}
t = false;
}
catch {
MessageBox.Show("برنامه خطا داره");
scon.Close();
}

وقتی کاربر تصویری انتخاب میکنه در بخش ثبت کاربر همون اوایل خط scon.Open(); خطا میده.

راستی متغییر scon ماله اتصلات پایگاه دادس.

نوع پایگاه داده : sqlite
ورژن دات نت: 4

لطفا کمکم کنید خیلی خیلی واجبه.
ممنون از همه

parvizwpf
چهارشنبه 10 اردیبهشت 1393, 22:03 عصر
دقیقا رو چه خطی حطا داره ؟ تریس میکنی همه چی اوکی یه؟

seyed.javad.majidi
چهارشنبه 10 اردیبهشت 1393, 22:14 عصر
آره همه چی درسته رو خط:
scon.Open();
البته دارم میگم این کار میکنه ولی تازمانی که من رو کلیک انتخاب تصویر کلیک نکردم :|
وقتی کلیک میکنم رو انتخاب تصویر و وتصویری میارم هیچی نمیشه وقتی رو کلیک ثبت میزنم خطا میاد.

parvizwpf
چهارشنبه 10 اردیبهشت 1393, 22:30 عصر
دیتایل ارور چی میگه الان ارتباط و ثبت دیتابیست کار میکنه؟

seyed.javad.majidi
چهارشنبه 10 اردیبهشت 1393, 22:32 عصر
میگم هیچ مشکلی در هیچ جای برنامه نیست فقط رو انتخاب عکس که کلیک میکنم از اون به بعد در هرجایی که با دیتابیس سرو کار داره سیستم اروری که در پست اول اتچ کردم رو میده