PDA

View Full Version : سوال: مشكل در آپديت محتويات اديتور



samaram
شنبه 30 شهریور 1387, 10:56 صبح
روال برنامه ي من اينطوريه كه محتويات يه ركورد رو از بانك مي خونه و داخل يه تكست باكس و يه اديتور مي ريزه. كاربر مياد تغييراتشو اعمال مي كنه. دكمه ي ذخيره رو مي زنه . برنامم دوباره مقادير تكست باكس و اديتور رو مي خونه و مي ريزه توي بانك. اما مشكلي كه الان هست اينه كه برنامم مقادير جديد رو نمي خونه! بلكه همون مقادير قبلي داخل اديتور رو مي خونه. دستور آپديت رو تست كردم، درست كار مي كنه.

kezack
شنبه 30 شهریور 1387, 11:22 صبح
خوب فکر کنم کد رو بزاری زودتر به نتیجه می رسی
چه فیلدهایی رو می خوای آپیدیت کنی؟

samaram
شنبه 30 شهریور 1387, 17:11 عصر
خوب فکر کنم کد رو بزاری زودتر به نتیجه می رسی
چه فیلدهایی رو می خوای آپیدیت کنی؟


.
.
.

using System.Data.SqlClient;
public partial class edit : System.Web.UI.Page
{
int sr;
protected void Page_Load(object sender, EventArgs e)
{

String r = Request.QueryString["id"];
SqlConnection logcon;
SqlCommand logcom;
logcon = new SqlConnection("server=samaram ; UID=sa; pwd=123 ; database=samaram");
logcom = new SqlCommand("select * from [post_tb] where id=@ram", logcon);
int s;
s = Convert.ToInt32(r);
sr = s;
logcom.Parameters.AddWithValue("@ram", s);
logcon.Open();
SqlDataReader dtr=logcom.ExecuteReader();
while (dtr.Read())
{
txt1.Text = dtr["title_p"].ToString();
efck.Value = dtr["post_p"].ToString();
}
logcon.Close();
}

protected void Button1_Click(object sender, EventArgs e)
{
if ((chky.Checked == false) && (chksh.Checked == false))
lbltype.Visible = true;
else
{
if (!IsPostBack)
{
lbltype.Visible = false;
SqlConnection logcon;
SqlCommand logcom;
logcon = new SqlConnection("------------------------------");
logcom = new SqlCommand("Update [post_tb] set title_p=@t , post_p=@p , ch_y=@y , ch_sh=@sh WHERE id=@g", logcon);
logcom.Parameters.AddWithValue("@t", txttitle.Text.ToString);
logcom.Parameters.AddWithValue("@p", efck.Value);
if (chky.Checked = true)
{
logcom.Parameters.AddWithValue("@y", "y");
logcom.Parameters.AddWithValue("@sh", "n");
}
else if (chksh.Checked = true)
{
logcom.Parameters.AddWithValue("@y", "n");
logcom.Parameters.AddWithValue("@sh", "y");
}
logcom.Parameters.AddWithValue("@g", sr);
logcon.Open();
logcom.ExecuteNonQuery();
logcon.Close();
}
}
}
}

kezack
شنبه 30 شهریور 1387, 19:11 عصر
دوست عزيز مقدار sr رو در رويداد Button1_Click را جه مقداري دادي؟
برابر اين مقدار قرار بده
Request.QueryString["id"];

kezack
شنبه 30 شهریور 1387, 20:38 عصر
فكر كنمwhile براي داشتن شرط بود while مشكلي نداره

samaram
یک شنبه 31 شهریور 1387, 04:00 صبح
نه. مشكل مال دستورات نبايد باشه. چون همين كدها توي صفحه ي ويرايشم درست كار مي كنند. دقيقا داده ي مورد نظرم توي ويرايشگر و تكست باكس نمايش داده مي شه. بعدش كه من ميام و تغييراتمو روي محتوياتش انجام مي دم و دكمه ي "ذخيره ي تغييرات" رو مي زنم بجاي اينكه اين مقاديري كه الان ويرايششون كردم توي بانك اپديت بشه همون مقادير اوليه ي تكست باكس و اديتور ريخته ميشه!! در ضمن kezack جان اگه كدها رو پيگيري كنيد من بعد از يه تبديل همون مقدار id رو توي sr قرار دادم.

kezack
یک شنبه 31 شهریور 1387, 08:27 صبح
دوست عزيز شما در رويداد button_click براي id مقدار دهي نكرديد و در pageload اينكارو كرديد
در قسمت page load هم اين شرط رو اول بزاريد
if(!ispostback)
و فكر كنم اين كد بدردتون بخوره
همون كاري كه ميخوان رو انجام ميده



using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class _2 : System.Web.UI.Page
{
int d;
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=exame;Integrated Security=True");
SqlCommand cmd = new SqlCommand("Select * from test1 where id=@id");
cmd.Parameters.Add("@id", SqlDbType.Int).Value = Request.QueryString["id"];
d =int.Parse( Request.QueryString["id"]);
cmd.Connection = con;
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
TextBox1.Text = dr[1].ToString();
TextBox2.Text = dr[2].ToString();
TextBox3.Text = dr[3].ToString();
}
con.Close();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=exame;Integrated Security=True");
SqlCommand cmd = new SqlCommand("Update test1 set name=@name,lname=@lname,Tel=@tel where id=@id");
cmd.Parameters.Add("@name", SqlDbType.NVarChar).Value = TextBox1.Text;
cmd.Parameters.Add("@Lname", SqlDbType.NVarChar).Value = TextBox2.Text;
cmd.Parameters.Add("@Tel", SqlDbType.NVarChar).Value = TextBox3.Text;
cmd.Parameters.Add("@id", SqlDbType.Int).Value =Request.QueryString["id"];
cmd.Connection = con;
con.Open();
string q = cmd.ExecuteNonQuery().ToString();
con.Close();
}
}

samaram
یک شنبه 31 شهریور 1387, 12:31 عصر
دوست عزيز شما در رويداد button_click براي id مقدار دهي نكرديد و در pageload اينكارو كرديد

در قسمت page load هم اين شرط رو اول بزاريد
و فكر كنم اين كد بدردتون بخوره
همون كاري كه ميخوان رو انجام ميده


بله. همين كارو كردم. درست شد. واقعا از بزرگواري و كمكتون سپاسگذارم. شادي و موفقيتتونو آرزو مي كنم.