PDA

View Full Version : ذخیره کردن مقادیر دیتاگرید در بانک



programerinfonet
یک شنبه 30 مهر 1391, 09:12 صبح
سلام دوستان من یک دیتاگرید دارم که توسط متد زیر از بانک sql بایند شده


string d;
SqlDataAdapter adap;
d = "select * from virtualkala";
adap = new SqlDataAdapter(d, my_con);
adap.Fill(dss, "virtualkala");
dgv.DataSource = dss.Tables["virtualkala"];
//dgv.Columns["id"].Visible = false;
dgv.Columns["idsanad"].Visible = false;
dgv.Columns["state"].Visible = false;
dgv.Columns["kala"].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMod e.Fill;
dgv.Columns["tedad"].Width = 80;
dgv.Columns["fi"].Width = 100;
dgv.Columns["mablagh"].Width = 100;
dgv.Columns["visitory"].Width = 100;
dgv.Columns["kala"].HeaderText = "شـــرح ";
dgv.Columns["tedad"].HeaderText = "مقدار";
dgv.Columns["fi"].HeaderText = "قیمت ";
dgv.Columns["mablagh"].HeaderText = "مبلغ سطر ";
dgv.Columns["visitory"].HeaderText = "ویزیتوری ";


حالا کاربر میتونه هر چندتا رکورد که میخواد به صورت دستی به دیتاگرید اضافه کنه
من چه طوری میتونم رکوردهای اضافه شده توسط کاربر رو تو بانک ذخیره کنم

morteza271
یک شنبه 30 مهر 1391, 09:25 صبح
طبیعتا باید ذخیره کردن در دیتابیس رو که بلد باشین!
شما برای اینکار با یه حلقه سطرهای گریدتون رو بخونید و یکی یکی در دیتابیس ذخیره کنید!
البته برای هر سطر چک کنید که تکراری نباشه!توصیه میکنم از استور پروسیجور ها استفاده کنید...

programerinfonet
یک شنبه 30 مهر 1391, 09:28 صبح
ممنون دوست عزیز
من با استور پروسیجور ها کار نکردم
چه طور باید این کار رو بکنم

abcd_a
یک شنبه 30 مهر 1391, 09:37 صبح
سلام
این نمونه کدی که در یکی از برنامه هام استفاده کردم امیدوارم به دردت بخوره
private void buttonX4_Click(object sender, EventArgs e)
{
if (dataGridViewX1.Rows.Count==0)
FarsiMessage.Show("لیست خالی است ", "توجه");
else
{
SqlCommand cm = new SqlCommand("insert into tbsource(bid,bname,bcomment) values(@bid,@bname,@bcomment)", cn);
cn.Open();
for (int i = 0; i < dataGridViewX1.RowCount ; i++)
{
cm.Parameters.Clear();
cm.Parameters.AddWithValue("@bid", dataGridViewX1.Rows[i].Cells[0].Value);
cm.Parameters.AddWithValue("@bname", dataGridViewX1.Rows[i].Cells[1].Value);
cm.Parameters.AddWithValue("@bcomment", dataGridViewX1.Rows[i].Cells[2].Value);


cm.ExecuteNonQuery();
}
FarsiMessage.Show("اطلاعات موردنظر اضافه شد ", "توجه");
}
cn.Close();
}

morteza271
یک شنبه 30 مهر 1391, 09:43 صبح
ممنون دوست عزیز
من با استور پروسیجور ها کار نکردم
چه طور باید این کار رو بکنم
تفاوت زیادی با کوئری های معمولی نداره و تنها تفاوتش اینه که شما استور پروسیجور رو در sql میسازین و از سی شارپ اون فراخوانی و اجرا می کنید.
توی همین سایت اگه یه جستجوی کوچولو انجام بدین به نتیجه میرسین.
به این خاطر گفتم از استور پروسیجور استفاده کنید چرا که شما می تونید توی یک استور پروسیجور ابتدا چک کنید که سطر مورد نظر تکراری نباشه و اگه تکرای نبود اون insert کنید. کلا با استورپروسیجور دستتون بازتره و بهتر میتونید مدیریت کنید امور دیتابیس رو...
موفق باشید.