PDA

View Full Version : update datagrid



AspNet
چهارشنبه 28 اردیبهشت 1384, 22:03 عصر
سلام

نمیدوم چرا دستوری که برای updateCommand Datagrid می نویسم اصلا کار نمیکنه..
هر دستوری باشه کار نمیکنه


با تشکر:AspNet

aidinwashere
چهارشنبه 28 اردیبهشت 1384, 22:11 عصر
Code خودتون رو به همراه sql آن اینجا بنویس دوست من

AspNet
چهارشنبه 28 اردیبهشت 1384, 23:10 عصر
ولی من فکر نمیکنم ربطی به کد داشته باشه
چون هر کدی رو اجرا میکنم نمیشه
مثلا
Response.Write("SD");

aidinwashere
چهارشنبه 28 اردیبهشت 1384, 23:35 عصر
نه!!!!!!!!!!!
شما باید دستور sql بنویسی نه Response.Write!
یا یک شئ commandtext بساز و نسبت بده به اون

AspNet
چهارشنبه 28 اردیبهشت 1384, 23:40 عصر
فرقی که نمیکنه

چون من در یه پروژه دیگه استفاده کردم کار کرد

حالا من اینو به طور آزمایشی نوشتم..وگرنه دستور sql هم کار نمیکنه

aidinwashere
پنج شنبه 29 اردیبهشت 1384, 01:09 صبح
من بیشتر بلد نیستم

kochol
پنج شنبه 29 اردیبهشت 1384, 06:30 صبح
سلام
اگر دیتا گرید را در حالت دیزاین درست کردی روی آن دوبار کلیک کن اگر درست نشد دیتا گریدت را پاک کن و دوباره بساز

Behrouz_Rad
پنج شنبه 29 اردیبهشت 1384, 11:30 صبح
نمیدوم چرا دستوری که برای updateCommand Datagrid می نویسم اصلا کار نمیکنه..
هر دستوری باشه کار نمیکنه
تنها دلیل این مشکل، تعیین نکردن روال OnUpdateCommand در فایل aspx است.
وب فرم خود را در حالت HTML باز کنید و این مورد را در تگ asp:DataGrid بررسی کنید.


OnUpdateCommand="DataGrid1_UpdateCommand"

AspNet
پنج شنبه 29 اردیبهشت 1384, 11:35 صبح
آقای راد این راه حلی که شما گفتین رو انجام دادم ولی error گرفت..

البته من یه بار grid رو پاک کردم و از اول ساختمش درست شد ...
:oops:

AspNet
پنج شنبه 29 اردیبهشت 1384, 12:43 عصر
من این دستور رو نوشتم ولی update نمیشه

TextBox txtStudentID;
TextBox txtStudentName;
TextBox txtStudentFamily;
string strStudentName;
string strStudentFamily;
string strStudentID;

txtStudentID=(TextBox)e.Item.Cells[0].Controls[0] ;
txtStudentName=(TextBox) e.Item.Cells[1].Controls[0];
txtStudentFamily=(TextBox)e.Item.Cells[2].Controls [0];

strStudentID=txtStudentID.Text;
strStudentName=txtStudentName.Text;
strStudentFamily=txtStudentFamily.Text;

string strSql="Update StudentTable Set Name=@Name,Family=@Family where StudentID=@StudentID";

cmdSql=new SqlCommand(strSql,conStudent);
cmdSql.Parameters.Add("@Name",strStudentName);
cmdSql.Parameters.Add("@Family",strStudentFamily);
cmdSql.Parameters.Add("@StudentID",strStudentID);

conStudent.Open();
cmdSql.ExecuteNonQuery();
conStudent.Close();

DataGrid1.EditItemIndex=-1;

فکر کنم اونجا textbox رو نمیتونه پیدا کنه

kochol
جمعه 30 اردیبهشت 1384, 09:49 صبح
سلام
حتما خاصیت id تکست باکسها را با نام خودشان ست کن

AspNet
شنبه 31 اردیبهشت 1384, 13:18 عصر
سلام
حتما خاصیت id تکست باکسها را با نام خودشان ست کن

میشه بیشتر توضیح بدین؟

AspNet
شنبه 31 اردیبهشت 1384, 13:20 عصر
مثل اینکه متن درون textBox ها رو که تغییر میدم اصلا تغییر نمیکنه و متن قبلی جایگزینش میشه برای همین آپدیت میشه ولی با همون نام قبلی . یعنی هیچ تغییری نمیکنه :گیج:

kochol
شنبه 31 اردیبهشت 1384, 17:57 عصر
در فرم لود آنها را مقدار دهی کرده اید اگر بله از درون کد زیر مقدار دهی کنید
میشه بیشتر توضیح بدین؟

if not(this.ispostback) then


kochol نوشته است:
سلام
حتما خاصیت id تکست باکسها را با نام خودشان ست کن


میشه بیشتر توضیح بدین؟


mytxt.id="mytxt"

AspNet
شنبه 31 اردیبهشت 1384, 20:51 عصر
این کد منه ولی آپدیت نمیشه هر کاری میکنم... در فرم لود هم کدی ننوشتم


string strStudentName;
string strStudentFamily;
string strStudentID;

TextBox txtStudentID=(TextBox)e.Item.Cells[0].Controls[0];
TextBox txtStudentName=(TextBox)e.Item.Cells[1].Controls[0 ];
TextBox txtStudentFamily=(TextBox)e.Item.Cells[2].Controls [0];

txtStudentID.ID="txtStudentID";
txtStudentName.ID="txtStudentName";
txtStudentFamily.ID="txtStudentFamily";

strStudentID=txtStudentID.Text;
strStudentName=txtStudentName.Text;
strStudentFamily=txtStudentFamily.Text;

string strSql="Update StudentTable Set Name=@Name,Family=@Family where StudentID=@StudentID";

cmdSql=new SqlCommand(strSql,conStudent);
cmdSql.Parameters.Add("@Name",strStudentName);
cmdSql.Parameters.Add("@Family",strStudentFamily);
cmdSql.Parameters.Add("@StudentID",strStudentID);

conStudent.Open();
cmdSql.ExecuteNonQuery();
conStudent.Close();

DataGrid1.EditItemIndex=-1;
BindDataGrid();
}

kochol
شنبه 31 اردیبهشت 1384, 22:53 عصر
=(TextBox)e.Item.Cells[0].Controls[0];
میشه توضیح بدی که این کد چی کار می کنه

AspNet
شنبه 31 اردیبهشت 1384, 23:01 عصر
این کد اولین کنترل از ستون مورد نظر رو میگیره . وقتی Edit رو میزنیم ستون به صورت textBox در میاد که ما این textbox مد نظرمونه.. و بعد هم به textBox تبدیل میکنیم این کنترل رو

AspNet
شنبه 31 اردیبهشت 1384, 23:15 عصر
مشکلم حل شد
باید در فرم لود قبل از اینکه دیتاگریدم بایند بشه if(!ispostback) رو می نوشتم :oops:

با تشکر از شما

Vahid_Keyany
چهارشنبه 08 تیر 1384, 13:05 عصر
هر چند که دیگه دیره ولی جواب اینه :

خاصیت Enable View State کنترلهای Document و grid را روی true تنظیم کنید .

والسلام