PDA

View Full Version : نمایش اطلاعات در گریدویو قبل از ثبت در بانک



mohsen.nsb44
سه شنبه 14 بهمن 1393, 09:10 صبح
سلام

من میخوام وقتی دکمه ثبت میزنم اطلاعاتم به گرید ویو اضافه بشه

مثلا یک کد میزنم اطلاعات اون کد به گریدویو من اضافه بشه
حالا یک کد دیگه میزنم اطلاعات کد جدید به گرید ویو اضافه بشه در یک ردیف جدید

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

notlikeothers
سه شنبه 14 بهمن 1393, 20:30 عصر
سلام.ببین یه تابع بنویس که بایند کنه گرید بعد اون تابع رو بزار اخر کلیک یا هر رویدادی که هس اینطوری بعد هر رویداد گرید رفرش میشه

yasinamini
چهارشنبه 15 بهمن 1393, 01:16 صبح
سلام دوستان گرامی
لطفا بهم کمک کنیدمن میخواهم در asp.net نام دانشجویان رو از drop down list انتخاب کنم و در grid view نمره ی آنها رو نمایش دهد(به پایگاه داده وصل کنم)

sajadsobh
چهارشنبه 15 بهمن 1393, 16:24 عصر
سلام

من میخوام وقتی دکمه ثبت میزنم اطلاعاتم به گرید ویو اضافه بشه

مثلا یک کد میزنم اطلاعات اون کد به گریدویو من اضافه بشه
حالا یک کد دیگه میزنم اطلاعات کد جدید به گرید ویو اضافه بشه در یک ردیف جدید

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

نمیدونم این راه اصولی هست یا نه ولی جواب میده!
توی دیتابیس جدولی دارم به اسم Daneshjoo که از دو تا فیلد به نام های Name و Score تشکیل شده.
یه گریدویو دارم که دو تا BoundField اضافه کردم بهش و DataField هرکدوم از اون فیلدها رو Name و Score گذاشتم. یه تابع به اسم BindGrid تعریف میکنم به شکل زیر:

protected void BindGrid()
{
GridView1.DataSource = (DataTable)ViewState["Test"];
GridView1.DataBind();
}

حالا توی PageLoad اینو بنویس:

if (!this.IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[2] { new DataColumn("Name"), new DataColumn("Score") });
ViewState["Test"] = dt;
this.BindGrid();
}

دو تا تکست باکس دارم که میخوام با اونا گریدویو رو پر کنم. یه دکمه دارم که اطلاعات رو از تکست باکس ها به گریدویو اضافه میکنه. توی رویداد کلیک اون دکمه اینو می نویسم:

DataTable dt = (DataTable)ViewState["Test"];
dt.Rows.Add(TextBox1.Text.Trim(), TextBox2.Text.Trim());
ViewState["Test"] = dt;
this.BindGrid();
TextBox1.Text = string.Empty;
TextBox2.Text = string.Empty;
TextBox1.Focus();

یه دکمه هم دارم که میخوام اطلاعات این گریدویو رو به جدولی که توی دیتابیس دارم ذخیره کنم. توی رویداد کلیک این دکمه اینو می نویسم:

SqlConnection con = new SqlConnection("Server=.;Database=Test; Integrated Security=true");
DataTable dt = new DataTable();
dt.Columns.Add("name", typeof(string)); //name of the column
dt.Columns.Add("score", typeof(string));//name of the column
foreach (GridViewRow row in GridView1.Rows)
{
SqlCommand cmd = new SqlCommand("INSERT INTO [Daneshjoo] (name, Score) VALUES(@Name, @Score)", con);
DataRow dr = dt.NewRow();
dr["name"] = row.Cells[0].Text;
dr["score"] = row.Cells[1].Text;
cmd.Parameters.AddWithValue("@Name", dr["name"]);
cmd.Parameters.AddWithValue("@Score", dr["score"]);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
Response.Redirect(Request.Url.AbsoluteUri);

sajadsobh
چهارشنبه 15 بهمن 1393, 16:58 عصر
سلام دوستان گرامی
لطفا بهم کمک کنیدمن میخواهم در asp.net نام دانشجویان رو از drop down list انتخاب کنم و در grid view نمره ی آنها رو نمایش دهد(به پایگاه داده وصل کنم)

توی گریدویو دیگه واسه چی آخه؟! یعنی یه گریدویو میخوای بذاری که فقط نمره ی یه دانشجو رو توش نشون بدی؟ label هم کارت رو راه میندازه هااا :لبخندساده:
شما DropDownList رو با اون جدول که میخوای پر کن. بعد توی رویداد SelectedIndexChanged ِ اون از این کد استفاده کن:

SqlConnection con = new SqlConnection("Server=.;Database=Test; Integrated Security=true");
SqlCommand cmd = new SqlCommand("SELECT Score FROM Daneshjoo WHERE ID = @ID", con);
cmd.Parameters.AddWithValue("@ID", Convert.ToInt32(DropDownList1.SelectedValue));
con.Open();
Label1.Text = cmd.ExecuteScalar().ToString();
con.Close();

فقط یادت باشه خاصیت AutoPostBack از اون DropDownList رو True کنی.