PDA

View Full Version : سوال: اجرا نشدن دستور update



pedramb66
جمعه 10 آبان 1392, 21:19 عصر
با سلام.
من یک صفخه دارم با بک textbox و یک دکمه.وفتی صفحه لود میشه یه سطر رو از دیتابیس میخونه و تو textbox نمایش میده.کاربر متنو تفییر میده.با زدن دکمه متنی که تو textbox نوشته شده تو دیتا بیس آپدیت میشه.ولی دستور آپدیت کار نمیکنه.هیچ اروری هم نمیده.
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = System.Configuration.ConfigurationManager.Connecti onStrings["FarshadConnectionString1"].ConnectionString;
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "select* from test";
cmd.Connection = con;
SqlDataReader dr;
dr = cmd.ExecuteReader();
dr.Read();
txt.Text = dr["Text"].ToString();
dr.Close();
con.Close();

}
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = System.Configuration.ConfigurationManager.Connecti onStrings["FarshadConnectionString1"].ConnectionString;
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "update test set text=@name";
cmd.Parameters.AddWithValue("@name", txt.Text);
cmd.Connection = con;
cmd.ExecuteNonQuery();
con.Close();
}
ممنون.

aspismylove
شنبه 11 آبان 1392, 10:33 صبح
دوست عزیز فک نمیکنی باید توی دستور آپدیت شرط بزاری ؟؟؟؟ الان این کد از کجا میفهمه که کدوم سطر از دیتابیس رو آپدیت کنه ؟

r_s1389@yahoo.com
شنبه 11 آبان 1392, 11:27 صبح
فکر کنم این دستور با وجود گذاشتن شزرط هم اصلا اجرا نشه چون
هر بار که دکمه فشرده میشه اول پیج لود اجرا میشه و سپس باتن در نتیجه هیچ مقداری آپدیت نمیشه

pedramb66
شنبه 11 آبان 1392, 11:34 صبح
دوست عزیز فک نمیکنی باید توی دستور آپدیت شرط بزاری ؟؟؟؟ الان این کد از کجا میفهمه که کدوم سطر از دیتابیس رو آپدیت کنه ؟

ممنون.من فقط یه سطر تو جدول دارم.و میخوام همون یه سطر هم آپدیت بشه.حتی شرط هم گذاشتم که اگه ID=1 بود انجام بده ولی باز هم کار نمیکنه.
cmd.CommandText = "update test set text=@name where id=@id";
cmd.Parameters.AddWithValue("@name", text.Text);
cmd.Parameters.AddWithValue("@id", id);
id تو جدول یک هست از نوع int.تو code هام هم id رو یک تعریف کردم.

pedramb66
شنبه 11 آبان 1392, 11:35 صبح
فکر کنم این دستور با وجود گذاشتن شزرط هم اصلا اجرا نشه چون
هر بار که دکمه فشرده میشه اول پیج لود اجرا میشه و سپس باتن در نتیجه هیچ مقداری آپدیت نمیشه
ممنون.چه راه حلی پیشنهاد میدید؟

r_s1389@yahoo.com
شنبه 11 آبان 1392, 11:58 صبح
ممنون.چه راه حلی پیشنهاد میدید؟
خوب مگه شما یک name , id تو جدولتون ندارین درسته
پس چجوری txt.Text = dr["Text"].ToString(); ریختین داخل تکس باکس
در ظمن برای دستور آپدیت حتما از شرط استفاده کن

r_s1389@yahoo.com
شنبه 11 آبان 1392, 11:59 صبح
در ظمن کل کدهای اون صفحه رو بذار تا راحت تر جوابتون رو بدم

mRizvandi
شنبه 11 آبان 1392, 12:14 عصر
اون کد داخل Page_Load رو به این شکل تغییر بده :



protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostback)
{

SqlConnection con = new SqlConnection();
con.ConnectionString = System.Configuration.ConfigurationManager.Connecti onStrings["FarshadConnectionString1"].ConnectionString;
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "select* from test";
cmd.Connection = con;
SqlDataReader dr;
dr = cmd.ExecuteReader();
dr.Read();
txt.Text = dr["Text"].ToString();
dr.Close();
con.Close();
}
}

شرطی که اضافه شده چک می کنه اگر صفحه در پست بک نیست، دیتاها رو لود کنه در غیر اینصورت دیتایی لود نمیشه.

pedramb66
شنبه 11 آبان 1392, 12:20 عصر
خوب مگه شما یک name , id تو جدولتون ندارین درسته
پس چجوری txt.Text = dr["Text"].ToString(); ریختین داخل تکس باکس
در ظمن برای دستور آپدیت حتما از شرط استفاده کن
من تو جدول یک id دارم و یک text.کلا هم یک سطر دارم.او name هم اسم پارامتر هست.

در ظمن کل کدهای اون صفحه رو بذار تا راحت تر جوابتون رو بدم
بفرمایید protected void Page_Load(object sender, EventArgs e)
{

SqlConnection con = new SqlConnection();
con.ConnectionString = System.Configuration.ConfigurationManager.Connecti onStrings["FarshadConnectionString1"].ConnectionString;
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "select* from test";
cmd.Connection = con;
SqlDataReader dr;
dr = cmd.ExecuteReader();
dr.Read();
txt.Text = dr["Text"].ToString();

}
protected void Button1_Click(object sender, EventArgs e)
{


int id = 1;
SqlConnection con = new SqlConnection();
con.ConnectionString = System.Configuration.ConfigurationManager.Connecti onStrings["FarshadConnectionString1"].ConnectionString;
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "update test set text=@name where id=@id";
cmd.Parameters.AddWithValue("@name", txt.Text);
cmd.Parameters.AddWithValue("@id", id);
cmd.Connection = con;
cmd.ExecuteNonQuery();
}

pedramb66
شنبه 11 آبان 1392, 12:24 عصر
از تمام دوستان بابت راهنمایی ممنونم.خوشبختانه با راه حل جناب mRizvandi مشکل حل شد.باز هم از همه ممنونم.