PDA

View Full Version : سوال: پرکردن دیتابیس با datagrid



hooman-2k
دوشنبه 19 شهریور 1397, 19:28 عصر
سلام و خسته نباشید به دوستان عزیز
یه سوال داشتم جستوجو کردم چیزی پیدا نکردم براش تو سایت
من یه فرم دارم به شکل زیر
148840
با زدن دکمه ی ثبت باید تمام فیلد ها ثبت بشه در دیتا بیس
با این کلاس که نوشتم کار خیلی راحت انجام میشه

SqlConnection sqlc = new SqlConnection(@"Data Source=.;Initial Catalog=Sepahan;Integrated Security=True");
SqlCommand sqlcmd = new SqlCommand();


public bool EXE(string str)
{
sqlc.Open();
sqlcmd.Connection = sqlc;
sqlcmd.CommandText = str;
try
{
sqlcmd.ExecuteNonQuery();
return true;
}
catch
{
return false;

}
finally
{
sqlc.Close();
}
}


public DataTable Select(string str)
{
SqlDataAdapter sqlda = new SqlDataAdapter();
DataTable dt = new DataTable();


sqlc.Open();
sqlcmd.Connection = sqlc;
sqlcmd.CommandText = str;
sqlda.SelectCommand = sqlcmd;
sqlda.Fill(dt);
sqlc.Close();
return dt;
}

حالا مشکلی که دارم اینه که چجوری مقادیری که داخل دیتاگرید نوشته میشه رو وارد دیتابیس کنم
یعنی مثلا این شکل
148841
دستوری که برای INSERT مینویسم به این شکل هست
DB.EXE("insert into contract (customerID, contractNumber, date, deliverDate, accountNumber, invoice) values ('" + int.Parse(txtCunstomerNumber.Text) + "',N'" + txtConNumber.Text + "',N'" + txtDate.Text + "',N'" + txtDeliverDate.Text + "',N'" + cmbAccountNumber.Text + "',N'" + cmbInvoice.Text + "') ")
این برای مقادیری که تکست باکس و کومبوباکس هست
حالا اگه میشه راهنمایی کنید که چه کدی برای این کار هست

Mahmoud.Afrad
دوشنبه 19 شهریور 1397, 19:41 عصر
یک جدول برای مفادقرارداد نیاز دارید دو تا جدول هم برای پرداختها.
ثبت را هم توسط یک تراکنش انجام بدید.

hooman-2k
دوشنبه 19 شهریور 1397, 20:00 عصر
یک جدول برای مفادقرارداد نیاز دارید دو تا جدول هم برای پرداختها.
ثبت را هم توسط یک تراکنش انجام بدید.
ممنون از پاسخ سریع دوست عزیز
بله ساختم جداول رو هم برای مفاد قرارداد هم پرداخت ها
از چه کوئری باید استفاده کنم که مقدار رو از دیتاگرید بخونه و ثبت کنه!؟

hooman-2k
دوشنبه 19 شهریور 1397, 21:13 عصر
ممنون و متشکرم
راهش رو پیدا کردم
با استفاده از یک حلقه for مقادیر رو پر میکنیم

hooman-2k
دوشنبه 19 شهریور 1397, 23:09 عصر
دوستان حالا یه سوال
برای Update باید چیکار کنم؟
برای وارد کردن من این راه رو رفتم

for (int i = 0; i < dgvTypes.Rows.Count-1; i++)
{
if (DB.EXE("insert into types values ('" + int.Parse(txtCunstomerNumber.Text) + "',N'" + dgvTypes.Rows[i].Cells["brand"].Value.ToString() + "',N'" + dgvTypes.Rows[i].Cells["count"].Value.ToString() + "',N'" + dgvTypes.Rows[i].Cells["price"].Value.ToString() + "',N'" + dgvTypes.Rows[i].Cells["type"].Value.ToString() + "',N'" + dgvTypes.Rows[i].Cells["value"].Value.ToString() + "')") == true)
{
flag++;
}
}

flag رو قرار دادم که برای ثبت نهایی اگه کمتر از یه تعدادی باشه خطا بده بهم
دستود update تا اونجا که من میدونم به این شکل هست

update contract set customerID = N'" + int.Parse(txtCunstomerNumber.Text) + "', contractNumber = N'"

و ...
حالا با این روش چجوری آپدیت کنم چیزهایی که تو دیتاگرید هست رو؟