PDA

View Full Version : عدم اجرای آپدیت روی دیتابیس



mohammad973
یک شنبه 13 اسفند 1391, 06:24 صبح
سلام دوستان عزیز .
من این کد رو برای آپدیت مقادیر یک جدول داخل یه تابع نوشتم ، ولی جواب نمیده . یعنی اصلا آپدیت نمیکنه !!!




protected void UpdateAndContinue_BTN_Click(object sender, EventArgs e)
{
string KeyStr = Request.QueryString["AN_ID"] ;
DateTime dt = new DateTime();
dt = DateTime.Now;
SqlConnection conn = new SqlConnection("Data Source=MOHAMMAD-PC\\MOHAMMADMSSERVER;Initial Catalog=h3rd_DB;Integrated Security=True");
SqlCommand comm = new SqlCommand();
comm.Connection = conn;
comm.CommandText = "UPDATE [ArticlesNews] SET [AN_type] = @AN_type, [AN_titr] = @AN_titr, [AN_content] = @AN_content, [AN_reference] = @AN_reference, [AN_GroupID] = @AN_GroupID, [AN_DateTime] = @AN_DateTime, [AN_state] = @AN_state, [AN_Author] = @AN_Author WHERE [AN_ID] = @AN_ID";
comm.Parameters.AddWithValue("@AN_type","False");
comm.Parameters.AddWithValue("@AN_titr",NewsTitles_TXT.Text);
comm.Parameters.AddWithValue("@AN_content",NewsEditor.Text);
comm.Parameters.AddWithValue("@AN_reference",NewsReferences_TXT.Text);
comm.Parameters.AddWithValue("@AN_GroupID",NewsGroup.SelectedValue);
comm.Parameters.AddWithValue("@AN_DateTime",dt);
comm.Parameters.AddWithValue("@AN_state",NewsState.SelectedValue);
comm.Parameters.AddWithValue("@AN_Author",NewsAuthor.Text);
comm.Parameters.AddWithValue("@AN_ID", KeyStr);
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
Response.Redirect("MangeExistNews.aspx");
}



بنظرتون مشکلش چی میتونه باشه ؟

(البته هیچ خطایی نمیده ولی اطلاعاتم رو هم دسن نمیزنه!)

spicirmkh
یک شنبه 13 اسفند 1391, 09:25 صبح
چرا از store procedure استفاده نمی کنید هم سرعت بیشتر و مطمئن تر است دز SQL تابع update بنویسید در کد صدایش بزنبد

mohammad973
یک شنبه 13 اسفند 1391, 14:17 عصر
اون رو هم امتحان میکنم و نتیجش رو هم میگم ، ولی آخه اشکال کد بالا چیه ؟؟؟؟؟؟

aliblue
دوشنبه 14 اسفند 1391, 14:29 عصر
من حدس میزنم مشکل مربوط به قسمت where کد sql باشه. مطمئنی QueryString درست به صفحه ارسال میشه؟ یک label بذار و KeyStr رو بریز توش بیبن درست نشون میده.
در ضمن ممکنه در جدولت id رکوردی دقیقا با KeyStr برابر نباشه.

mohammad973
دوشنبه 14 اسفند 1391, 23:15 عصر
نه دوست من . من از صفحه اول مقادیرم رو با کوئری استرینگ میفرستم به صفحه دوم و رکوردم را میبینم . keystr رو هم درست میاره . ولی نمیدونم چرا موقع آپدیت ، کار خودشو انجام نمیده .

mohammad973
سه شنبه 15 اسفند 1391, 02:09 صبح
دوستان خواهشا یه همفکری ای بکنین بتونم مشکلمو حل کنم !!! چند روزه توی همین گیر کردم !!!! آخه این کد چه مشکلی داره که دیتابیسم رو آدیت نمیکنه ؟؟؟؟


protected void UpdateAndContinue_BTN_Click(object sender, EventArgs e)
{

string KeyStr = Request.QueryString["AN_ID"].ToString();
DateTime dt = new DateTime();
dt = DateTime.Now;
SqlConnection conn = new SqlConnection("Data Source=MOHAMMAD-PC\\MOHAMMADMSSERVER;Initial Catalog=h3rd_DB;Integrated Security=True");
SqlCommand comm = new SqlCommand();
comm.Connection = conn;
comm.CommandText = "UPDATE [ArticlesNews] SET [AN_titr] ='" + NewsTitles_TXT.Text + "', [AN_content] ='" + NewsEditor.Text + "', [AN_reference] ='" + NewsReferences_TXT.Text + "', [AN_GroupID] =" + NewsGroup.SelectedValue + ", [AN_DateTime] = " + dt + ", [AN_state] = " + NewsState.SelectedValue + ", [AN_Author] = '" + NewsAuthor.Text + "' WHERE [AN_ID] =" + KeyStr;
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
Response.Redirect("MangeExistNews.aspx");
}

fakhravari
سه شنبه 15 اسفند 1391, 03:34 صبح
با برکپوینت باید برسی کنید.
در کل از روش پارامتری کار کنید.
comm.parametr.adwi همچین چیزی

mohammad973
سه شنبه 15 اسفند 1391, 03:44 صبح
با برکپوینت باید برسی کنید.
در کل از روش پارامتری کار کنید.
comm.parametr.adwi همچین چیزی

با برکپوینت بلد نیستم کار کنم ! ضمنا ، توی پست 1 ، کدم رو با پارامتر نوشتمو باز جواب نگرفتم .

من مشکلمو یه با رمیگم درست و حسابی ، خواهش میکنم دوستانی که میتونند ، خیلی واضح راهنماییم کنند:

لیستی از عناوین اخبار(تحت یک gridView) رو توی Page1 دارم . روی یکی از این رکوردهای خبر کلیک میکنم . صفحه Page2 باز میشه . درحالیکه تعدادی textBox و دکمه و یک ادیتور ckeditor توی ین صفحه هست . تمومی این کنترل ها ، با مقادیر اون رکورد انتخابی پر میشه . تا اینجای کار درسته و هیچ مشکلی نیست ! مشکل اینجاست که وقتی ویرایش رو انجام میدم و ذخیره رو میزنم ، صفحه تنها رفرش میشه و هیچ تغییری نه در GridView و نه دیتابیسم نمیده !
چکار کنم تا اطلاعات از کنترل های داخل Page2 گرفته بشه و داخل دیتابیسم ذخیره بشه ؟ یه نمونه کد و کمی توضیح اگر بگذارید ممنون میشم .

خواهشا دوستانی که میتونند ، بگند ، چون چند روزه فقط گیر همین یه کار هستم و کلی از پروژه ام عقب افتاده ام !

(پ.ن: در Insert کردن اخبار مشکلی ندارم . فقط برای آپدیت مشکل دارم )

fakhravari
سه شنبه 15 اسفند 1391, 04:46 صبح
نوعشم مشخص کن
cmd1.Parameters.Add("@Time", SqlDbType.NVarChar).Value = this.Time;
cmd1.Parameters.Add("@Comennt", SqlDbType.NVarChar).Value = this.Comennt;
cmd1.Parameters.Add("@Title", SqlDbType.NVarChar).Value = this.Title;

مقدار اینو بگیر ببین چنده
int dd = comm.ExecuteNonQuery();

mohammad973
سه شنبه 15 اسفند 1391, 10:11 صبح
جواب نمیده ! اصلا سر درنمیارم ! حسابی گیج شدم !
مقدار dd هم برابر 1 شد .

rana-writes
سه شنبه 15 اسفند 1391, 13:13 عصر
سلام
توي پيج لود صفحه تون مقدار اين text box ها و اديتورها پر ميشن؟
اگه اينطوره اول تابع Page Load يه If(!isPostback) بندازين و اين كدهاي فراخواني رو توي اون قرار بدين.
كار با برك پوينت هم كاري نداره، كافيه كنار تابع آپديت مكان نماتون رو كليك كنين، يه دايره قرمز رنگ ظاهر ميكنه
بعد برنامه رو ران كنين و وقتي دكمه آپديت رو توي سايت كليك كنين، خود به خود اين دايره قرمز زرد ميشه و با كليد f10 خط به خط ميتونين برنامه تون رو كنترل كنين.

اصلا اجراي برنامه بدون برك پوينت واقعا سخته.


موفق باشين

mohammad973
سه شنبه 15 اسفند 1391, 17:13 عصر
بله همینطوره که میگید . توی page_load پر میشند .
امتحان میکنم و نتیجشو میگم .
ممنون

mohammad973
سه شنبه 15 اسفند 1391, 17:19 عصر
دوستان ، خیلی خیلی خیلی ممنون . واقعا اینقدر خوشحال شدم که نمیدونم چی بگم !!!! واقعا ممنون . مشکلم با postBack حل شد . از همه شما ممنونم .

فقط اگر لینکی یا آموزشی مبسوط تر درباره بریک پوینت هست ، زحمتشو برام بکشید تا مطالعه کنمو بتونم باهاش خوب کار کنم .

باز هم تشکر . مخصوصا از آقای فخر آوران عزیز و rana-writes عزیز .