PDA

View Full Version : آپدیت کردن دیتاگرید ویو



jafarpalideh
شنبه 17 تیر 1391, 12:27 عصر
با سلام
من کدهای زیر رو واسه وارد کردن اطلاعات به دیتابیسم گذاشتم
حالا یه دیتاگرید ویو هم روی فرم گذاشتم و میخوام که با وارد کردن اطلاعات توی دیتابیس گرید هم آپدیت بشه
حالا به کد زیر باید چه کدهایی رو اضافه کنم؟

try
{
string cmdstr;
conn.Open();
cmdstr = "insert into nvarede(idname,ferestande,tvorod,shnamevarede,tera zmabda,sharhn) values('" + Convert.ToInt32(txtradifename.Text) + "','" + txtferstande.Text + "','" + tvorodename.Text + "','" + shnamevarede.Text + "','" + tersalazmabda.Text + "','" + sharhname.Text + "')";
cmd.Connection = conn;
cmd.CommandText = cmdstr;
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show("اطلاعات به درستی وارد جدول شد");
}
catch
{
MessageBox.Show("خطا در ورود اطلاعات،لطفا مجدد تلاش کنید");
}

sobijoon
شنبه 17 تیر 1391, 14:20 عصر
کافیه یه بار با دستور select در انتهای دستوراتت و وارد کردن تو دیتا ست و وصل کردن دیتا سورس کرید به اون دیتا سثف اونو آپدیت کنی.
DataSet dsSk;
DataView dwSk;

dsSk = sql.selectall_SK();
dwSk = new DataView();
dwSk.Table = dsSk.Tables["table"];
dgvSK.DataSource = dwSk;


dgv اسم گرید
dwSk اسم دیتا ویو
dsSk اسم دیتاست
sql.selectall_SK اینم همون کانکشنتون هستش

jafarpalideh
شنبه 17 تیر 1391, 15:19 عصر
من که نفهمیدم
میشه واضح تر توضیح بدید؟

veniz2008
شنبه 17 تیر 1391, 15:30 عصر
چیزه مشکلی نیست، بعد از اینکه رکورد رو درج کردید، باید از جدولتون یه select بگیرید و جواب اونو توی یه گرید بریزی.دوستمون از دیتاست و دیتاویو استفاده کردن، شما میتونید از دیتاتیبل هم استفاده کنید، به اینصورت:

string cmdstr;
conn.Open();
cmdstr = "insert into nvarede(idname,ferestande,tvorod,shnamevarede,tera zmabda,sharhn) values('" + Convert.ToInt32(txtradifename.Text) + "','" + txtferstande.Text + "','" + tvorodename.Text + "','" + shnamevarede.Text + "','" + tersalazmabda.Text + "','" + sharhname.Text + "')";
cmd.Connection = conn;
cmd.CommandText = cmdstr;
cmd.ExecuteNonQuery();
MessageBox.Show("اطلاعات به درستی وارد جدول شد");
// show table in gridview
SqlDataAdapter da = new SqlDataAdapter("select * from nvarede , conn);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
conn.Close();

sobijoon
شنبه 17 تیر 1391, 15:36 عصر
من یه تابع نوشتم برای خوندن اطلاعات از db و اونو به DataSource گریدم که اسمش dgv هست وصل کردم
private void LoadDB()
{
SqlConnection con1 = new SqlConnection(Module1.conection);
SqlDataAdapter da = new SqlDataAdapter("select *from View_aza", Module1.conection);
DsData = new DataSet();

da.Fill(DsData, "ozve");
dgv.DataSource = DsData.Tables["ozve"];

}
حالا بعد از اینکه شما تغییراتتون رو تو دیتا بیس انجام دادید و کارتون تموم شد این تابع رو بصورت زیر در انتهای دستوراتتون بیارید
LoadDB();

jafarpalideh
شنبه 17 تیر 1391, 15:47 عصر
ممنون
مشکلم حل شد.
یه سوال؟؟؟؟؟
همیشه واسه آپدیت کردن دیتاگریدم باید همین کار رو بکنم؟(توی آپدیت و حذف و ویرایش)

sobijoon
شنبه 17 تیر 1391, 15:49 عصر
بله
اگه در انتهای دستورات حذف و ویرایش و ... یکبار اینکار رو انجام بدید همیشه گریدتون آپدیته.
پیش نهاد میکنم اگه برنامه نویسی لایه ای بلد نیستید حداقل اینکار رو در یک تابع انجام بدید تا دچار سردرگمی فراوانی خطوط کد نشیدمثل اون تابع که براتون نوشتم.
موفق باشید.