PDA

View Full Version : سوال: مشکل در اضافه و ثبت کردن اطلاعات به database



Haj MilaD
شنبه 06 آذر 1395, 22:05 عصر
درود
دوستان من دارم رو پروژه مدیریت کلنیک چشم پزشکی کار میکنم
ولی تو ثبت اطلاعات بیمار به مشکلی برخوردم که برای خودم هم عجیبه
کد مشکلی نداره (باره اول اطلاعات رو ذخیره میکنه تو دیتا بیس ولی بار دوم اررور میده)

کد اضافه:

else
{
this.Validate();

bimarBindingSource.EndEdit();

bimarDataGridView.Refresh();
MessageBox.Show("ثبت شد اما برای ذخیره دکمه ثبت را فشار دهید");
button3.Enabled = true;
}


کد ثبت:

private void button3_Click(object sender, EventArgs e)
{
this.bimarTableAdapter.Update(this.medicaleyeDataS et.bimar);


MessageBox.Show("!با موفقیت ذخیره شد");

button3.Enabled = false;
}


دوستان بنده برنامه رو با دیتا بیس ها آپلود میکنم و قرار میدم - لطفا یه نگاهی بندازین و ممنون میشم اگه مشکل حل بشه.چون وقت زیادی تا ارائه ندارم

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


کد کامل:

private void bimarBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.bimarBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.medicaleye DataSet);

}

private void sabtbimar_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'medicaleyeDataSet.bimar' table. You can move, or remove it, as needed.
this.bimarTableAdapter.Fill(this.medicaleyeDataSet .bimar);
InputLanguage.CurrentInputLanguage =
InputLanguage.FromCulture(new System.Globalization.CultureInfo("fa-IR", false));

عکسPictureBox.SizeMode = PictureBoxSizeMode.StretchImage;

DataGridViewCellStyle ob = new DataGridViewCellStyle();
ob.BackColor = Color.Yellow;
bimarDataGridView.AlternatingRowsDefaultCellStyle = ob;
}

private void نامTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (char.IsNumber(e.KeyChar))
e.Handled = true;
}

private void نام_خانوادگیTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (char.IsNumber(e.KeyChar))
e.Handled = true;
}

private void نوع_آسیب_دیدگیTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (char.IsNumber(e.KeyChar))
e.Handled = true;
}

private void آدرسTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (char.IsNumber(e.KeyChar))
e.Handled = true;
}

private void button1_Click(object sender, EventArgs e)
{
bimarBindingSource.AddNew();
}

private void button5_Click(object sender, EventArgs e)
{
openFileDialog1.Title = "Open The Picture";
openFileDialog1.Filter = "jpg File|*.jpg" + "png File|*.png" + "BMP File|*.bmp" + "GIF File|*.gif" + "All File|*.*";
openFileDialog1.FilterIndex = 1;

if(openFileDialog1.ShowDialog()==DialogResult.OK)
{
عکسPictureBox.Image=Image.FromFile(openFileDial og1.FileName);
عکسPictureBox.Refresh();
}
}

private void button2_Click(object sender, EventArgs e)
{
if (نامTextBox.Text == "")
{
MessageBox.Show("نام را وارد کنید");
نامTextBox.Focus();
}
else if (نام_خانوادگیTextBox.Text=="")
{
MessageBox.Show("نام خانوادگی را وارد کنید");
نام_خانوادگیTextBox.Focus();
}
else if (کد_ملیTextBox.Text=="")
{
MessageBox.Show("کد ملی را وارد کنید");
کد_ملیTextBox.Focus();
}
else if (نوع_آسیب_دیدگیTextBox.Text=="")
{
MessageBox.Show("نوع آسیب دیدگی را وارد کنید");
نوع_آسیب_دیدگیTextBox.Focus();
}
else if (تلفنTextBox.Text=="")
{
MessageBox.Show("تلفن را وارد کنید");
تلفنTextBox.Focus();
}
else if (جنسیتTextBox.Text=="")
{
MessageBox.Show("جنسیت را وارد کنید");
جنسیتTextBox.Focus();
}
else if (آدرسTextBox.Text=="")
{
MessageBox.Show("آدرس را وارد کنید");
آدرسTextBox.Focus();
}
else if (تاریخ_ثبتDateTimePicker.DataBindings==nul l)
{
MessageBox.Show("تاریخ را وارد کنید");
تاریخ_ثبتDateTimePicker.Focus();
}
else if (عکسPictureBox.Image==null)
{
MessageBox.Show("عکس را وارد کنید");
button5.Focus();
}
else
{
this.Validate();

bimarBindingSource.EndEdit();

bimarDataGridView.Refresh();
MessageBox.Show("ثبت شد اما برای ذخیره دکمه ثبت را فشار دهید");
button3.Enabled = true;
}
}

private void button4_Click(object sender, EventArgs e)
{
if (medicaleyeDataSet.HasChanges())
{
bimarBindingSource.CancelEdit();
bimarTableAdapter.Fill(medicaleyeDataSet.bimar);
MessageBox.Show("انصراف از اضافه");
}
}

private void button3_Click(object sender, EventArgs e)
{
this.bimarTableAdapter.Update(this.medicaleyeDataS et.bimar);


MessageBox.Show("!با موفقیت ذخیره شد");

button3.Enabled = false;
}

private void button6_Click(object sender, EventArgs e)
{
Close();
}

private void sabtbimar_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult yes;
if (medicaleyeDataSet.HasChanges())
{
yes = MessageBox.Show("تغییرات ذخیره شود؟","ذخیره تغییرات",MessageBoxButtons.YesNo,MessageBoxIcon.Question,M essageBoxDefaultButton.Button1);

if (yes == DialogResult.Yes)
{
bimarTableAdapter.Update(this.medicaleyeDataSet.bi mar);
MessageBox.Show("انجام شد");
}
else
{
bimarBindingSource.CancelEdit();
bimarTableAdapter.Fill(medicaleyeDataSet.bimar);
MessageBox.Show("انصراف از ذخیره سازی");
}
}
}

12457812
شنبه 06 آذر 1395, 22:32 عصر
سلام دوست عزیز
از این روش استفاده کن خیلی هم راحتره




SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=Db_Gym;Integrated Security=True");
string query = "Insert Into tb_save_afrad (name,family,code_meli,shomare_bimeh,tarikh,tarikh _tavalod,tel,adress) Values (@name,@family,@code_meli,@shomare_bimeh,@tarikh,@ tarikh_tavalod,@tel,@adress)";
SqlCommand com = new SqlCommand(query, con);
com.Parameters.AddWithValue("@name", txtname.Text);
com.Parameters.AddWithValue("@family", txtname.Text);

//com.Parameters.AddWithValue("@pic", ImageToByte(pic_afrad .Image));
com.Parameters.AddWithValue("@code_meli", txt_meli.Text);
com.Parameters.AddWithValue("@shomare_bimeh", txt_shomare_bimeh.Text);
com.Parameters.AddWithValue("@tarikh", txt_data.Text);
com.Parameters.AddWithValue("@tarikh_tavalod", txt_tarikh_tavalod.Text);
com.Parameters.AddWithValue("@tel", txt_tel.Text);
com.Parameters.AddWithValue("@adress", txt_adres.Text);

con.Open();
com.ExecuteNonQuery();
con.Close();

FMessegeBox.FarsiMessegeBox.Show("اطلاعات با موفقیت ثبت شد", "", FMessegeBox.FMessegeBoxButtons.Ok, FMessegeBox.FMessegeBoxIcons.Information);
var db = new linqDataContext();
gv_vieww.DataSource = db.tb_save_afrads;


در ضمن اینقدر هم از حلقه واسه خالی بودن تکست باکس استفاده کن


روشی راحت


if (txtname.Text == "" && txt_family .Text=="" &&txt_meli .Text==""&&txt_shomare_bimeh .Text==""&&txtname .Text =="" )
{
errorProvider1.SetError(labelX1, "لطفا اطلاعات رو با دقت وارد کنید");
errorProvider1.SetError(labelX2, "لطفا اطلاعات رو با دقت وارد کنید");
errorProvider1.SetError(labelX5, "لطفا اطلاعات رو با دقت وارد کنید");
errorProvider1.SetError(labelX3, "لطفا اطلاعات رو با دقت وارد کنید");
txt_family.Focus();
txt_meli.Focus();
txt_shomare_bimeh.Focus();


return;
}
else
{
errorProvider1.Clear();
}