PDA

View Full Version : ذخیره اطلاعات از gridview در دیتابیس



amir_T_2008
جمعه 05 دی 1393, 06:35 صبح
سلام

من یک سایت فروشگاه طراحی کردم که بدین صورت که کاربر بعد از اتمام انتخاب اجناس مورد نظرش وارد صفحه ای میشه که تمامی اجناسی که انتخاب کرده نمایش میده حالا من این اطلاعات در قالب gridview به کاربر نمایش میدم و زیر گرید یک دکمه تایید گذاشتم که میخوام وقتی کاربر روی دکمه تایید کلیک میکنه تمامی اطلاعات داخل گرید در دیتابیس ذخیره بشه اما هر چی میگردم آموزش یا کدی پیدا نمیکنم که بیاد اطلاعات گرید ویو واکشی و در دیتابیس ذخیره کنه.


ممنون میشم راهنمایی کنید

ahmad156
جمعه 05 دی 1393, 09:02 صبح
شما DataSource مربوط به گریدویو رو که دارین پس با یه حلقه توی اون میتونین هر سطر رو داشته باشین پس ...

amir_T_2008
جمعه 05 دی 1393, 09:12 صبح
احمد جان خیلی کلی میگید و من حرفه ای نیستم.آموزش دارید که بشه اطلاعات از گرید گرفت و به دیتابیس انتقال داد؟

amir_T_2008
جمعه 05 دی 1393, 09:46 صبح
دوستان من از کد زیر استفاده میکنم و جواب میده فقط مشکل اینه اجازه نمیده از primary key استفاده کنم .میدونید مشکل از کجاست؟




foreach (GridViewRow g1 in GridView1.Rows)
{
SqlConnection con = new SqlConnection(connStr);
string CustomerId = (g1.FindControl("Label1") as Label).Text;
string Name = (g1.FindControl("Label2") as Label).Text;
string Country = (g1.FindControl("Label3") as Label).Text;


com = new SqlCommand("insert into Customers(CustomerId,Name,Country) values ('" + CustomerId + "','" + Name + "','" + Country + "')", con);
con.Open();
com.ExecuteNonQuery();
con.Close();

}

ahmad156
جمعه 05 دی 1393, 10:07 صبح
DataTable tbl = Gridview1.DataSource as DataTable;
الان DataTable دارین

foreach (DataRow row in tbl.Rows) .
{

var username=row["username"]
...
}

البته به شرطی که DataSource مربوط به GridView رو از نوع DataTable داده باشین که به احتمال زیاد همین طوره

alizanganeh
جمعه 05 دی 1393, 11:31 صبح
یک کد راحت :



GridViewRow Row = GridView1.SelectedRow; //یک متغیر از نوع شمارنده رکوردهای گریدویو ایجا میکنه
for (int i = 0; i < GridView1.Rows.Count; i++) //یک حلقه که از رکورد اول تا آخر گریدویو رو چک میکنه
{

حالا توی این حلقه کد ذخیره توی بانک رو مینویسی . فقط وقتی میخوای بگی که اطلاعات رو از کجا بگیره و ذخیره کنه ، مثلا بجای TextBox1.Text مینویسی : Row.Cellls[0].Text . این کد مقدار ستون اول از رکورد جاری رو برمیگردونه.


}


شاید بهترین روش نباشه ولی شما که میگی تازه کاری ، واست فهمش راحتتره .
البته این کد فقط وقتی قابل اجراست که کل اطلاعاتی که قراره در بانک ذخیره بشه رو الان توی گریدویو نمایش میدی . اگر همه در حال نمایش نباشن کد بالا کارایی نداره و یک کار دیگه باید انجام بدی . اگر خواستی بگو اونم بهت بگم.
امیدوارم واضح توضیح داده باشم.
موفق باشید

amir_T_2008
یک شنبه 07 دی 1393, 18:40 عصر
یک کد راحت :



GridViewRow Row = GridView1.SelectedRow; //یک متغیر از نوع شمارنده رکوردهای گریدویو ایجا میکنه
for (int i = 0; i < GridView1.Rows.Count; i++) //یک حلقه که از رکورد اول تا آخر گریدویو رو چک میکنه
{

حالا توی این حلقه کد ذخیره توی بانک رو مینویسی . فقط وقتی میخوای بگی که اطلاعات رو از کجا بگیره و ذخیره کنه ، مثلا بجای TextBox1.Text مینویسی : Row.Cellls[0].Text . این کد مقدار ستون اول از رکورد جاری رو برمیگردونه.


}


شاید بهترین روش نباشه ولی شما که میگی تازه کاری ، واست فهمش راحتتره .
البته این کد فقط وقتی قابل اجراست که کل اطلاعاتی که قراره در بانک ذخیره بشه رو الان توی گریدویو نمایش میدی . اگر همه در حال نمایش نباشن کد بالا کارایی نداره و یک کار دیگه باید انجام بدی . اگر خواستی بگو اونم بهت بگم.
امیدوارم واضح توضیح داده باشم.
موفق باشید


اگر ممکنه یه نمونه برام قرار بدید

ممنونم