PDA

View Full Version : سوال: ذخیره اطلاعات



davidrobert
یک شنبه 19 خرداد 1392, 18:21 عصر
سلام من میخوام اطلاعات خودم رو ذخیره کنم نه به وسیله تکس باکس بلکه به وسیله label و datagridviewX میخوام ذخیره کنم یعنی. من 2 تا جدول دارم که داخل یکیش شماره سند و فاکتور ذخیره میشه و در داخل دیتاگرید من اطلاعات شماره سند،فاکتور،کد خدمات،نام سرویس،توزیحات،هزینه،تاریخ وزمان وارد میشه ولی بگم شماره سند و فاکتور در label و datagridviewX به طور خوتکار وارد میشه همین طور تاریخ و زمان و حالا میخوام چند تا کالا وارد کنم که کد خدماتش تکراری نباشه در داخل دیتاگرید اگه تکراری بود جلوش رو بگیره و هیچ اطلاعات رو ثبت نکنه و وقتی کل اطلاعات دیتاگرید کد خدماتش فرق داشت اون موقع ثبت کنه هر چند تا رکورد در داخل دیتاگرید بود و خطا نده 20 تا رکورد در دیتاگرید بود و مقدار تکی label رو ذخیره کنه من از این دستورات استفاده کردم جواب نگرفتم هیچ نوع اطلاعاتی رو ذخیره نکرد برای من و میخوام اگه سلولی خالی بود پیغام بده اون سلول روپور کنی ممنون میشم این رو کمک کنید.اینم دستورات من.
کلاس مربوط به اجرا دستورات برای ذخیره کردن
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using ECP.PersianMessageBox;
using System.Data.SqlClient;
namespace Bername_Hesabdare_SayeBan_Poshak
{
class ClsAddServiceKhedemat
{
public string ID;
public int FID;
public string FDoc;
public string FFoc;
public int AID;
public string ADoc;
public string AFoc;
public int ACodeKhedemat;
public string ANameService;
public string ADistrubuite;
public string APay;
public string ADate;
public string ATime;

DataAccess db = new DataAccess();

public void add()
{
try
{
string sqlLbl = "Insert into Tbl_AddNumberDocAndFoc (F_Id,F_Doc,F_Foc)";
sqlLbl += "values (@F_Idm,@F_Doc,@F_Foc)";
sqlLbl = string.Format(sqlLbl, this.FID, this.FDoc, this.FFoc);
string sqlgdv = "Insert into Tbl_AddFoctorKhedmat (A_ID,A_Doc,A_Foc,A_CodeKhedemat,A_NameServic,A_Di strebuite,A_Pay,A_Date,A_Time)";
sqlgdv += "values (@A_ID,@A_Doc,@A_Foc,@A_CodeKhedemat,@A_NameServic ,@A_Distrebuite,@A_Pay,@A_Date,@A_Time)";
sqlgdv = string.Format(sqlgdv, this.AID, this.ADoc, this.AFoc, this.ACodeKhedemat, this.ANameService, this.ADistrubuite, this.APay, this.ADate, ATime);
db.Connect();
db.DoCommand(sqlLbl);
db.DoCommand(sqlgdv);
db.Disconnect();

}
catch (SqlException ex)
{
if (ex.Number == 2627)
PersianMessageBox.Show("کد خدمات تکراری می باشد.", "هشدار", PersianMessageBox.Buttons.OK, PersianMessageBox.Icon.Warning);
}
}
}
}

دستورات مربوط به فرم
private void BtnSave_Click(object sender, EventArgs e)
{
//if (dataGridViewX1.CurrentRow == null)
// return;
//if (dataGridViewX1.CurrentRow.Cells["ClmNameService"].Value == "")
// PersianMessageBox.Show("مقدار نام سرویس را وارد فرمائید");
ClsAddServiceKhedemat clslist = new ClsAddServiceKhedemat();
clslist.FDoc = LblDoc.Text;
clslist.FFoc = LblFoc.Text;
clslist.ADoc = dataGridViewX1.CurrentRow.Cells["ClmDoc"].Value.ToString();
clslist.AFoc = dataGridViewX1.CurrentRow.Cells["ClmFoc"].Value.ToString();
clslist.ACodeKhedemat =Int32.Parse( dataGridViewX1.CurrentRow.Cells["ClmCodeKhedemat"].Value.ToString());
clslist.ANameService = dataGridViewX1.CurrentRow.Cells["ClmNameService"].Value.ToString();
clslist.ADistrubuite = dataGridViewX1.CurrentRow.Cells["ClmDist"].Value.ToString();
clslist.APay = dataGridViewX1.CurrentRow.Cells["ClmPay"].Value.ToString();
clslist.ADate = dataGridViewX1.CurrentRow.Cells["ClmDate"].Value.ToString();
clslist.ATime = dataGridViewX1.CurrentRow.Cells["ClmTime"].Value.ToString();
clslist.add();
}
ممنون میشم به هم بگید چطور هم زمان 2 تا اطلاعات رو با هم ذخیره کنم بخاطر همین کل دستورات رو قرار دادم شاید ایراد در دستورات من باشه که اطلاعات کل دیتاگرید و همین طور label ها رو ذخیره نمیکنه ممنون میشم به هم بگید خیلی لازم دارم به همچین دستوری برای ذخیره اطلاعات .که به وسیله داده های دیتاگرید باشه.

davidrobert
یک شنبه 19 خرداد 1392, 19:24 عصر
خواهشن کمک کنید میخوام 2 تا اطلاعات رو هم زمان ذخیره کنم م ن از این دستور هم استفاده کردم ولی فقط یه اطلاعات رو ذخیره میکنه اونم فقط اطلاعات اول رو ذخیره میکنه که مربوط به دیتاگرید هستش و شماره سند و فاکتور رو ذخیره نمیکنه و دیتاگرید هم ردیف اول رو ذخیره میکنه ادامه رکورد های رو ذخیره نمیکنه ممنون میشم بگید چطور کل روکورد دیتاگرید رو یک جا ذخیره کنم و همین طور مقدار تکی label رو هم با دیتاگرید ذخیره کنم خیلی لازم دارم این دستوری که من برای ذخیره استفاده میکنم که فقط سلول اول دیتاگرید رو ذخیره میکنه و باقی سلول رو نه و مقدار label رو هم ذخیره نمیکنه
private void BtnSave_Click(object sender, EventArgs e)
{
//if (dataGridViewX1.CurrentRow == null)
// return;
//if (dataGridViewX1.CurrentRow.Cells["ClmNameService"].Value == "")
// PersianMessageBox.Show("مقدار نام سرویس را وارد فرمائید");
//ClsAddServiceKhedemat clslist = new ClsAddServiceKhedemat();
//clslist.FDoc = LblDoc.Text;
//clslist.FFoc = LblFoc.Text;
//clslist.ADoc = dataGridViewX1.CurrentRow.Cells["ClmDoc"].Value.ToString();
//clslist.AFoc = dataGridViewX1.CurrentRow.Cells["ClmFoc"].Value.ToString();
//clslist.ACodeKhedemat =Int32.Parse( dataGridViewX1.CurrentRow.Cells["ClmCodeKhedemat"].Value.ToString());
//clslist.ANameService = dataGridViewX1.CurrentRow.Cells["ClmNameService"].Value.ToString();
//clslist.ADistrubuite = dataGridViewX1.CurrentRow.Cells["ClmDist"].Value.ToString();
//clslist.APay = dataGridViewX1.CurrentRow.Cells["ClmPay"].Value.ToString();
//clslist.ADate = dataGridViewX1.CurrentRow.Cells["ClmDate"].Value.ToString();
//clslist.ATime = dataGridViewX1.CurrentRow.Cells["ClmTime"].Value.ToString();
//clslist.add();
try
{
db.Connect();
db.cmd = new SqlCommand();
db.cmd.Connection = db.con;
db.cmd.CommandText = "Insert into Tbl_AddNumberDocAndFoc (F_Doc,F_Foc)values (@F_Doc,@F_Foc)";
db.cmd.CommandText = "Insert into Tbl_AddFoctorKhedmat (A_Doc,A_Foc,A_CodeKhedemat,A_NameServic,A_Distreb uite,A_Pay,A_Date,A_Time) values (@A_Doc,@A_Foc,@A_CodeKhedemat,@A_NameServic,@A_Di strebuite,@A_Pay,@A_Date,@A_Time)";
db.cmd.Parameters.AddWithValue("@F_Doc", Int32.Parse(LblDoc.Text));
db.cmd.Parameters.AddWithValue("@F_Foc", Int32.Parse(LblFoc.Text));
db.cmd.Parameters.AddWithValue("@A_Doc", Int32.Parse(dataGridViewX1.CurrentRow.Cells["ClmDoc"].Value.ToString()));
db.cmd.Parameters.AddWithValue("@A_Foc", Int32.Parse(dataGridViewX1.CurrentRow.Cells["ClmFoc"].Value.ToString()));
db.cmd.Parameters.AddWithValue("@A_CodeKhedemat", Int32.Parse(dataGridViewX1.CurrentRow.Cells["ClmCodeKhedemat"].Value.ToString()));
db.cmd.Parameters.AddWithValue("@A_NameServic", dataGridViewX1.CurrentRow.Cells["ClmNameService"].Value.ToString());
db.cmd.Parameters.AddWithValue("A_Distrebuite", dataGridViewX1.CurrentRow.Cells["ClmDist"].Value.ToString());
db.cmd.Parameters.AddWithValue("A_Pay", Int32.Parse(dataGridViewX1.CurrentRow.Cells["ClmPay"].Value.ToString()));
db.cmd.Parameters.AddWithValue("@A_Date", dataGridViewX1.CurrentRow.Cells["ClmDate"].Value.ToString());
db.cmd.Parameters.AddWithValue("@A_Time", dataGridViewX1.CurrentRow.Cells["ClmTime"].Value.ToString());
db.cmd.ExecuteNonQuery();
db.Disconnect();
}
catch (SqlException ex)
{
if (ex.Number == 2627)
PersianMessageBox.Show("کد خدمات تکراری می باشد");
}
FrmAddFocServicVKhedemat_Load(null, null);
}

davidrobert
یک شنبه 19 خرداد 1392, 20:43 عصر
خواهش میکنم کمک کنید خیلی نیاز دارم که اطلاعات رو هم زمان در 2 تا جدول ثبت کنم ممنون میشم کمک کنید من رو خواهش میکنم کمک کنید.

davidrobert
دوشنبه 20 خرداد 1392, 09:59 صبح
خواهش میکنم کمک کنید خیلی نیاز دارم به همچین چیزی برای ذخیره اطلاعات

davidrobert
دوشنبه 20 خرداد 1392, 12:54 عصر
بچه ها من ب6 نوع مختلف دارم اطلاعات رو ذخیره میکنم ولی جواب نمیگیرم خواهش میکنم کمک کنید من رو اعلان فقط دستور ثبت شماره سند و فاکتور کار میکنه و دستورات مربوط به ثبت سرویس خدمات کار نمیکنی در دیتاگرید من میخوام اطلاعات کل دیتاگرید رو یک جا ذخیره کنم ولی نمی دانم چیکار باید کنم برای اینکه کل اطلاعات داخل دیتارید رو یک جا ذخیره کنم و داخل دیتاگرید رو خالی کنم و از کد خدمات تکراری جلوگیری به عمل بیارم. این کد های من هستش.
دستورات مربوط به فرم ثبت اطلاعات
private void BtnSave_Click(object sender, EventArgs e)
{
//if (dataGridViewX1.CurrentRow == null)
// return;
//if (dataGridViewX1.CurrentRow.Cells["ClmNameService"].Value == "")
// PersianMessageBox.Show("مقدار نام سرویس را وارد فرمائید");
ClsAddServiceKhedemat clslist = new ClsAddServiceKhedemat();
//clslist.FDoc = LblDoc.Text;
//clslist.FFoc = LblFoc.Text;
clslist.ADoc = dataGridViewX1.CurrentRow.Cells["ClmDoc"].Value.ToString();
clslist.AFoc = dataGridViewX1.CurrentRow.Cells["ClmFoc"].Value.ToString();
clslist.ACodeKhedemat =Int32.Parse( dataGridViewX1.CurrentRow.Cells["ClmCodeKhedemat"].Value.ToString());
clslist.ANameService = dataGridViewX1.CurrentRow.Cells["ClmNameService"].Value.ToString();
clslist.ADistrubuite = dataGridViewX1.CurrentRow.Cells["ClmDist"].Value.ToString();
clslist.APay = dataGridViewX1.CurrentRow.Cells["ClmPay"].Value.ToString();
clslist.ADate = dataGridViewX1.CurrentRow.Cells["ClmDate"].Value.ToString();
clslist.ATime = dataGridViewX1.CurrentRow.Cells["ClmTime"].Value.ToString();
clslist.add();
//try
//{
db.Connect();
db.cmd = new SqlCommand();
//DataSet ds=new DataSet();
//SqlDataAdapter da=new SqlDataAdapter();
//SqlCommandBuilder com;
//da.Fill(ds, "Tbl_AddFoctorKhedmat");
//com = new SqlCommandBuilder(da);
//dataGridViewX1.DataMember = "Tbl_AddFoctorKhedmat";
//da.Update(ds, "Tbl_AddFoctorKhedmat");
db.cmd.Connection = db.con;
db.cmd.CommandText = "Insert into Tbl_AddNumberDocAndFoc (F_Doc,F_Foc)values (@F_Doc,@F_Foc)";
//db.cmd.CommandText = "Insert into Tbl_AddFoctorKhedmat (A_Doc,A_Foc,A_CodeKhedemat,A_NameServic,A_Distreb uite,A_Pay,A_Date,A_Time) values (@A_Doc,@A_Foc,@A_CodeKhedemat,@A_NameServic,@A_Di strebuite,@A_Pay,@A_Date,@A_Time)";
//db.cmd.CommandText = "Insert into Tbl_AddNumberDocAndFoc=1,Tbl_AddFoctorKhedmat=2 (F_Doc,F_Foc,A_Doc,A_Foc,A_CodeKhedemat,A_NameServ ic,A_Distrebuite,A_Pay,A_Date,A_Time) values (@F_Doc,@F_Foc,@A_Doc,@A_Foc,@A_CodeKhedemat,@A_Na meServic,@A_Distrebuite,@A_Pay,@A_Date,@A_Time)";
db.cmd.Parameters.AddWithValue("@F_Doc", Int32.Parse(LblDoc.Text));
db.cmd.Parameters.AddWithValue("@F_Foc", Int32.Parse(LblFoc.Text));
//db.cmd.Parameters.AddWithValue("@A_Doc", Int32.Parse(dataGridViewX1.CurrentRow.Cells["ClmDoc"].Value.ToString()));
//db.cmd.Parameters.AddWithValue("@A_Foc", Int32.Parse(dataGridViewX1.CurrentRow.Cells["ClmFoc"].Value.ToString()));
//db.cmd.Parameters.AddWithValue("@A_CodeKhedemat", Int32.Parse(dataGridViewX1.CurrentRow.Cells["ClmCodeKhedemat"].Value.ToString()));
//db.cmd.Parameters.AddWithValue("@A_NameServic", dataGridViewX1.CurrentRow.Cells["ClmNameService"].Value.ToString());
//db.cmd.Parameters.AddWithValue("A_Distrebuite", dataGridViewX1.CurrentRow.Cells["ClmDist"].Value.ToString());
//db.cmd.Parameters.AddWithValue("A_Pay", Int32.Parse(dataGridViewX1.CurrentRow.Cells["ClmPay"].Value.ToString()));
//db.cmd.Parameters.AddWithValue("@A_Date", dataGridViewX1.CurrentRow.Cells["ClmDate"].Value.ToString());
//db.cmd.Parameters.AddWithValue("@A_Time", dataGridViewX1.CurrentRow.Cells["ClmTime"].Value.ToString());
db.cmd.ExecuteNonQuery();
db.Disconnect();
//db.Connect();
//db.cmd = new SqlCommand();
//db.cmd.CommandText = "Insert into Tbl_AddFoctorKhedmat (A_Doc,A_Foc,A_CodeKhedemat,A_NameServic,A_Distreb uite,A_Pay,A_Date,A_Time) values (@A_Doc,@A_Foc,@A_CodeKhedemat,@A_NameServic,@A_Di strebuite,@A_Pay,@A_Date,@A_Time)";
//db.cmd.Parameters.AddWithValue("@A_Doc", Int32.Parse(dataGridViewX1.CurrentRow.Cells["ClmDoc"].Value.ToString()));
//db.cmd.Parameters.AddWithValue("@A_Foc", Int32.Parse(dataGridViewX1.CurrentRow.Cells["ClmFoc"].Value.ToString()));
//db.cmd.Parameters.AddWithValue("@A_CodeKhedemat", Int32.Parse(dataGridViewX1.CurrentRow.Cells["ClmCodeKhedemat"].Value.ToString()));
//db.cmd.Parameters.AddWithValue("@A_NameServic", dataGridViewX1.CurrentRow.Cells["ClmNameService"].Value.ToString());
//db.cmd.Parameters.AddWithValue("A_Distrebuite", dataGridViewX1.CurrentRow.Cells["ClmDist"].Value.ToString());
//db.cmd.Parameters.AddWithValue("A_Pay", Int32.Parse(dataGridViewX1.CurrentRow.Cells["ClmPay"].Value.ToString()));
//db.cmd.Parameters.AddWithValue("@A_Date", dataGridViewX1.CurrentRow.Cells["ClmDate"].Value.ToString());
//db.cmd.Parameters.AddWithValue("@A_Time", dataGridViewX1.CurrentRow.Cells["ClmTime"].Value.ToString());
//db.cmd.ExecuteNonQuery();
//db.Disconnect();
//}
//catch (SqlException ex)
//{
// if (ex.Number == 2627)
// PersianMessageBox.Show("کد خدمات تکراری می باشد");
//}
FrmAddFocServicVKhedemat_Load(null, null);
}
دستورات مربوط به کلاس برای ثبت اطلاعات.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using ECP.PersianMessageBox;
using System.Data.SqlClient;
namespace Bername_Hesabdare_SayeBan_Poshak
{
class ClsAddServiceKhedemat
{
public string ID;
public int FID;
public string FDoc;
public string FFoc;
public int AID;
public string ADoc;
public string AFoc;
public int ACodeKhedemat;
public string ANameService;
public string ADistrubuite;
public string APay;
public string ADate;
public string ATime;

DataAccess db = new DataAccess();

public void add()
{
try
{
//string sqlLbl = "Insert into Tbl_AddNumberDocAndFoc (F_Doc,F_Foc)values (@F_Doc,@F_Foc)";
//sqlLbl = string.Format(sqlLbl,this.FDoc, this.FFoc);
string sqlgdv = "Insert into Tbl_AddFoctorKhedmat (A_Doc,A_Foc,A_CodeKhedemat,A_NameServic,A_Distreb uite,A_Pay,A_Date,A_Time) values (@A_Doc,@A_Foc,@A_CodeKhedemat,@A_NameServic,@A_Di strebuite,@A_Pay,@A_Date,@A_Time)";
sqlgdv = string.Format(sqlgdv, this.ADoc, this.AFoc, this.ACodeKhedemat, this.ANameService, this.ADistrubuite, this.APay, this.ADate, ATime);
db.Connect();
//db.DoCommand(sqlLbl);
db.DoCommand(sqlgdv);
db.Disconnect();

}
catch (SqlException ex)
{
if (ex.Number == 2627)
PersianMessageBox.Show("کد خدمات تکراری می باشد.", "هشدار", PersianMessageBox.Buttons.OK, PersianMessageBox.Icon.Warning);
}
}
}
}

خواهش میکنم یکی کمک کنی من نیاز دارم اینکه 2 تا دستور ذخیره استفاده کنم و بتوانم کل اطلاعات رو یک جا ذخیره کنم.
من برای ثبت سرویس به این صورت هم تعریف کردم ولی جواب نداد و خطا داد.
ClsAddServiceKhedemat clslist = new ClsAddServiceKhedemat();
//clslist.FDoc = LblDoc.Text;
//clslist.FFoc = LblFoc.Text;
clslist.ADoc += dataGridViewX1.CurrentRow.Cells["ClmDoc"].Value.ToString();
clslist.AFoc + = dataGridViewX1.CurrentRow.Cells["ClmFoc"].Value.ToString();
clslist.ACodeKhedemat +=Int32.Parse( dataGridViewX1.CurrentRow.Cells["ClmCodeKhedemat"].Value.ToString());
clslist.ANameService += dataGridViewX1.CurrentRow.Cells["ClmNameService"].Value.ToString();
clslist.ADistrubuite += dataGridViewX1.CurrentRow.Cells["ClmDist"].Value.ToString();
clslist.APay += dataGridViewX1.CurrentRow.Cells["ClmPay"].Value.ToString();
clslist.ADate += dataGridViewX1.CurrentRow.Cells["ClmDate"].Value.ToString();
clslist.ATime += dataGridViewX1.CurrentRow.Cells["ClmTime"].Value.ToString();
clslist.add();