سلام و درود به اساتید برنامه نویس...
خسته نباشید
یه پروفایل واسه کاربر طراحی کردم اطلاعاتو از دیتا بیس خوندم و ریختم توی چند تا تکست باکس و لیبل حالا وقتی میخوام پروفایلو ویرایش کنم چون فیلد یوزرنیمم توی دیتابیس یونیک هست حتما باید موقع ویرایش اطلاعات ، نام کاربری رو هم تغییر بدم وگرنه پیغام تکراری بودن نام کاربری رومیده چکار کنم؟
یه نفر گفت یه کنترل HiddenField به صفحت اضافه کن و توی کد سی شارپ در فسمت پیج لود همونجایی که با کد اطلاعاتو خوندم و ریختم توی تکست باکس ها کنار همون کدها این کنترل HiddenField رو برابر قرار بده با تکست باکس یوزرنیمت که من به این صورت کد رو اضاف کردم HiddenField .Value=txtUserName.Text
بعد گفت توی رخداد کلیک اونجایی که اطلاعاتو اپدیت میکنه این کد رو نوشتم ولی جواب نداد چکار کنم ؟
به احتمال زیاد داره دوباره ثبت میکنه که یونیک بودن ایراد میگیره
لطفا کدهات رو قرار بده ببینیم مشکل کجاست
سلام داش ایمان
داداش این کد متود رو توی پیج لود فراخونی کردم که مقادیر دیتابیس رو داخل تکست باکس ها نمایش میده
private void Initialize() { DataSet.UsersDataTable objDataTable = new DataSet.UsersDataTable(); DataSetTableAdapters.UsersTableAdapter objTableAdapter = new DataSetTableAdapters.UsersTableAdapter(); objTableAdapter.FillUserByUserId(objDataTable, (int)Session["UserId"]); if (objDataTable.Count == 0) { string strError = "کاربری با این مشخصات یافت نشد"; lblErrorMsg.Text = strError; return; } DataSet.UsersRow objUserRow = objDataTable[0]; //----------------UserName Row------------------------------------- if (objUserRow.IsUserNameNull() == false) { txtUserName.Text = objUserRow.UserName; HiddenField1.Value = objUserRow.UserName; return; } //--------------Sex Row--------------------------------------- if (objUserRow.IsSexNull() == false) { ddlSex.Text = objUserRow.Sex; } //------------------Tavalod Row----------------------------------- if (objUserRow.IsTavalodNull() == false) { txtTavalod.Text = objUserRow.Tavalod; } //----------------Taahol Row------------------------------------- if (ddlTaahol.Text == string.Empty) { ddlTaahol.Text = objUserRow.Taahol; } //------------------Din Row----------------------------------- if (objUserRow.IsDinNull() == false) { ddlDin.Text = objUserRow.Din; } //------------------Country Row----------------------------------- if (objUserRow.IsCountryNull() == false) { ddlCountry.Text = objUserRow.Country; } //--------------------City Row--------------------------------- if (objUserRow.IsCityNull() == false) { txtCity.Text = objUserRow.City; } //----------------------Informatotn Row------------------------------- if (objUserRow.IsInformationNull() == false) { txtInformation.Text = objUserRow.Information; } //----------------Images Row------------------------------------- if (objUserRow.IsAvatarNull() == false) { imgAvatar.ImageUrl = objUserRow.Avatar; } }
اینم کد های کلید ثبت اطلاعاته
//-------btn Sabt----- protected void btnSabt_Click(object sender, EventArgs e) { if (Page.IsValid) { DataSet.UsersDataTable objDataTable = new DataSet.UsersDataTable(); DataSetTableAdapters.UsersTableAdapter objTableAdapter = new DataSetTableAdapters.UsersTableAdapter(); objTableAdapter.FillUserByUserId(objDataTable, (int)Session["UserId"]); if (objDataTable.Count != 1) { lblErrorUpload.Text = string.Empty; lblOkUpload.Text = string.Empty; lblErrorMsg.Text = "کاربری با این مشخصات یافت نشد"; lblOkMsg.Text = string.Empty; return; } DataSet.UsersRow objUsersRow = objDataTable[0]; //------*----*---*-----*-----*-----*----*---*----*---*-- if (txtUserName.Text == HiddenField1.Value) { //-------Sex------ if (ddlSex.Text == string.Empty) { objUsersRow.SetSexNull(); } else { objUsersRow.Sex = ddlSex.Text; } //-------Tavalod--------- if (txtTavalod.Text == string.Empty) { objUsersRow.SetTavalodNull(); } else { objUsersRow.Tavalod = txtTavalod.Text; } //-------Taahol---------- if (ddlTaahol.Text == string.Empty) { objUsersRow.SetTaaholNull(); } else { objUsersRow.Taahol = ddlTaahol.Text; } //--------Din----------- if (ddlDin.Text == string.Empty) { objUsersRow.SetDinNull(); } else { objUsersRow.Din = ddlDin.Text; } //-------Country------- if (ddlCountry.Text == string.Empty) { objUsersRow.SetCountryNull(); } else { objUsersRow.Country = ddlCountry.Text; } //--------City----------- if (txtCity.Text == string.Empty) { objUsersRow.SetCityNull(); } else { objUsersRow.City = txtCity.Text; } //-----------Information------ if (txtInformation.Text == string.Empty) { objUsersRow.SetInformationNull(); } else { objUsersRow.Information = txtInformation.Text; } objTableAdapter.Update(objDataTable); lblOkMsg.Text = "با موفقیت ثبت شد"; lblOkUpload.Text = string.Empty; lblErrorMsg.Text = string.Empty; lblErrorUpload.Text = string.Empty; lblErrorUpload.Text = string.Empty; } else if (txtUserName.Text != HiddenField1.Value) { objTableAdapter.FillUserByUserName(objDataTable, txtUserName.Text); if (objDataTable.Count != 0) { lblErrorMsg.Text = "تکراری است این نام"; lblOkMsg.Text = string.Empty; lblOkUpload.Text = string.Empty; } else { objTableAdapter.FillUserByUserId(objDataTable, (int)Session["UserId"]); DataSet.UsersRow objUserRow = objDataTable[0]; if (txtUserName.Text == string.Empty) { objUserRow.SetUserNameNull(); } else { objUserRow.UserName = txtUserName.Text; } objTableAdapter.Update(objDataTable); lblOkUpload.Text = string.Empty; lblErrorMsg.Text = string.Empty; lblOkMsg.Text = "با موفقیت ثبت شد"; lblErrorUpload.Text = string.Empty; return; } }
الان با این کد ها هر چند بار پروفایل رو ویرایش میکنم خطا نمیده ولی اگه یه بار نام کاربری رو تغییر بدم دیگه دفعه بعد بخوام اطلاعاتو غیر از یوزرنیم ویرایش کنم پیغام خطای تکراری بودنو میده
لطفا راهنمایی کنید ممنون داداش
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)