bahar123
یک شنبه 21 آذر 1389, 12:59 عصر
در یک عملیات ساده update گیر کردم.استور پروسیجر و توایع سی شارپ رو گذاشتم.چیز جالبی که رخ میده این هست که وقتی روی دکمه ویرایش کلیک میشه ، تمامی عملیات با موفق انجام میشه صفحه postbackمیشه و حتی توی صفحه اطلاعات جدید update شده رو نمایش میده:متعجب:.اما در دیتابیس هیچ چیزی تغییر نمیکنه و مقادیر همون مقدارهای قبلی باقی می مونند.جدول هیچ مشکلی نداره ، من به همین صورت عملیات insert رو با همین جدول انجام داده اما کجای این دستور اشتباهه نمیدونم.
استور پروسیجر:
ALTER PROCEDURE dbo.user_update
@id int,@name nvarchar(max),@fam nvarchar(max),@email nvarchar(max),@tel nvarchar(max),@pass nvarchar(max)
AS
UPDATE users
SET nam = @nam,family = @fam,email = @email,tel = @tel ,password = @pass
WHERE ID = @id
RETURN
کد تابع اجرا کننده استورپروسیجر:
public int update(int idx,string name, string family, string email, string tel, string password)
{
SqlCommand cmd = new SqlCommand("user_update",
new SqlConnection(Settings.GetConnectionString));
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddRange(new SqlParameter[] {
new SqlParameter("@id", idx),
new SqlParameter("@nam", name),
new SqlParameter("@fam",family),
new SqlParameter("@email",email),
new SqlParameter("@tel",tel),
new SqlParameter("@pass", password)});
cmd.Connection.Open();
try
{
cmd.ExecuteNonQuery();
cmd.Connection.Close();
return 1;
}
catch (Exception ex)
{
return 0;
}
}
کد دکمه ویرایش:
protected void btnEdit_Click(object sender, EventArgs e)
{
int result = new user().update(userID, txtName.Text, txtFamily.Text, txtEmail.Text, txtMobile.Text, txtPass.Text);
if (result == 1)
{
lbl_msg.Visible = true;
lbl_msg.Text = "مشخصات شما به روز شد.";
txtName.Enabled = txtFamily.Enabled = txtEmail.Enabled = txtMobile.Enabled = txtPass.Enabled = false;
}
else if (result == 0)
{
lbl_msg.Visible = true;
lbl_msg.Text = "درحال حاضر امکان ویرایش مشخصات وجود ندارد.لطفا بعدا تلاش کنید.";
}
}
استور پروسیجر:
ALTER PROCEDURE dbo.user_update
@id int,@name nvarchar(max),@fam nvarchar(max),@email nvarchar(max),@tel nvarchar(max),@pass nvarchar(max)
AS
UPDATE users
SET nam = @nam,family = @fam,email = @email,tel = @tel ,password = @pass
WHERE ID = @id
RETURN
کد تابع اجرا کننده استورپروسیجر:
public int update(int idx,string name, string family, string email, string tel, string password)
{
SqlCommand cmd = new SqlCommand("user_update",
new SqlConnection(Settings.GetConnectionString));
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddRange(new SqlParameter[] {
new SqlParameter("@id", idx),
new SqlParameter("@nam", name),
new SqlParameter("@fam",family),
new SqlParameter("@email",email),
new SqlParameter("@tel",tel),
new SqlParameter("@pass", password)});
cmd.Connection.Open();
try
{
cmd.ExecuteNonQuery();
cmd.Connection.Close();
return 1;
}
catch (Exception ex)
{
return 0;
}
}
کد دکمه ویرایش:
protected void btnEdit_Click(object sender, EventArgs e)
{
int result = new user().update(userID, txtName.Text, txtFamily.Text, txtEmail.Text, txtMobile.Text, txtPass.Text);
if (result == 1)
{
lbl_msg.Visible = true;
lbl_msg.Text = "مشخصات شما به روز شد.";
txtName.Enabled = txtFamily.Enabled = txtEmail.Enabled = txtMobile.Enabled = txtPass.Enabled = false;
}
else if (result == 0)
{
lbl_msg.Visible = true;
lbl_msg.Text = "درحال حاضر امکان ویرایش مشخصات وجود ندارد.لطفا بعدا تلاش کنید.";
}
}