مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

moonfa1392

عضویت از 1394/08/17

مشکل در Update کردن پست ها

  • پنجشنبه 29 شهریور 1397
  • 16:02
تشکر میکنم

سلام

این کد ها:

<div class="form">
                    <p>عنوان منو : </p>
                    <asp:TextBox ID="Title" placeholder="عنوان منو" runat="server" CssClass="Input" ValidationGroup="Post"></asp:TextBox>
                    <p>لینک منو : </p>
                    <asp:TextBox ID="Link" placeholder="لینک منو" runat="server" CssClass="Input" ValidationGroup="Post"></asp:TextBox>
                    <br />
                    <asp:RequiredFieldValidator
                        ID="RequiredFieldValidator1"
                        runat="server"
                        ErrorMessage="لطفا عنوان منو را وارد کنید."
                        ValidationGroup="Post"
                        CssClass="error"
                        ControlToValidate="Title">
                    </asp:RequiredFieldValidator>
                    <br />
                    <asp:RegularExpressionValidator
                        Display="Dynamic"
                        ControlToValidate="Title"
                        ID="RegularExpressionValidator2"
                        ValidationExpression="^[\s\S]{1,25}$"
                        ValidationGroup="Post"
                        runat="server"
                        CssClass="error"
                        ErrorMessage="عنوان منو نمی تواند بیشتر از 25 کاراکتر باشد.">
                    </asp:RegularExpressionValidator>
                    <br />
                    <asp:RegularExpressionValidator
                        Display="Dynamic"
                        ControlToValidate="Link"
                        ID="RegularExpressionValidator1"
                        ValidationExpression="^[\s\S]{1,200}$"
                        ValidationGroup="Post"
                        runat="server"
                        CssClass="error"
                        ErrorMessage="لینک منو نمی توانند بیشتر از 200 کاراکتر باشند.">
                    </asp:RegularExpressionValidator>
                    <br />
                    <asp:Label ID="Label1" runat="server" CssClass="suc"></asp:Label>
                    <br />
                    <asp:Button ID="Button1" CssClass="Button" OnClick="Button1_Click" runat="server" ValidationGroup="Post" Text="ثبت منو" />
                </div>

اینم سمت سرور :

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Management_Panel_EditMenu : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        DAL run = new DAL();
        DataTable dt = new DataTable();
        string sqltext = string.Format("Select * From Menu Where ID={0} ", Request.QueryString["MenuID"]);
        dt = run.ExecuteQuery(sqltext);
        Title.Text = dt.Rows[0]["Title"].ToString();
        Link.Text = dt.Rows[0]["Link"].ToString();
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        DAL d1 = new DAL();
        if (Page.IsValid == true)
        {
            string st = string.Format("Update Menu set Title=N'{0}',Link=N'{1}' where ID={2}",
            Title.Text, Link.Text,Request.QueryString["MenuID"]);
            d1.ExecNonQuery(st);
            Label1.Text = "تغییرات با موفقیت ذخیره شد.";
        }
    }
}

ظاهرا توی کد خطایی نمی بینم، وقتی هم اجرا می گیرم به درستی اجرا میده و وقتی که ثبت میکنم پیغام تغییرات با موفقیت ذخیره شد رو برام میاره اما توی دیتابیس تغییرات اعمال نمیشه!!!

اینم محتویات کلاس DAL که استفاده کردم:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Net.Mail;
using System.Globalization;
using System.Reflection;
public class DAL
{
    public DAL()
    {
    }
    public void ExecNonQuery(string sqltext)
    {
        SqlConnection k = new SqlConnection();
        k.ConnectionString = "Data Source=DESKTOP-LE6P4DG;Initial Catalog=?7LfQ#VfqZzC%#B*; Trusted_Connection=True";
        k.Open();
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = k;
        cmd.CommandText = sqltext;
        cmd.ExecuteNonQuery();
        k.Close();

    }
    public DataTable ExecuteQuery(string sqltext)
    {
        SqlConnection k = new SqlConnection();
        k.ConnectionString = "Data Source=DESKTOP-LE6P4DG;Initial Catalog=?7LfQ#VfqZzC%#B*; Trusted_Connection=True";
        DataTable dt = new DataTable();
        SqlDataAdapter da = new SqlDataAdapter();
        da.SelectCommand = new SqlCommand();
        da.SelectCommand.Connection = k;
        da.SelectCommand.CommandText = sqltext;
        da.Fill(dt);
        return dt;

    }
}

ممنون میشم راهنمایی کنید

پاسخ های این پرسش

تعداد پاسخ ها : 11 پاسخ
کاربر سایت

moonfa1392

عضویت از 1394/08/17

  • پنجشنبه 29 شهریور 1397
  • 16:11

ضمنا وقتی دستور Update رو در SQL Server به صورت دستی Query میکنم به درستی اعمال میشه و مشکلی نداره

فقط وقتی از طریق پنل آپدیت میکنم این مشکل رو دارم

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • جمعه 30 شهریور 1397
  • 07:45

به نظر کد ها درست هستند

باید Trace کنید تا ببینید در کدام خط خطا وجود دارد

اینطوری نمیشه حدس زد

کاربر سایت

moonfa1392

عضویت از 1394/08/17

  • جمعه 30 شهریور 1397
  • 13:26

باید چیکارش کنم استاد؟

کاربر سایت

moonfa1392

عضویت از 1394/08/17

  • جمعه 30 شهریور 1397
  • 13:32

استاد این ایمیل اطلاع رسانی برای پاسخ به تاپیک ها قبلا همون ثانیه میومد، الان یکی دو ساعت بعدش میاد surprise

کاربر سایت

moonfa1392

عضویت از 1394/08/17

  • جمعه 30 شهریور 1397
  • 14:48

استاد تاپیک های قدیمی منو اگه نگاه کنین از سال 95 تا الان من با این مشکل توی پروژه هام روبرو میشم هیچوقت هم نتونستم حلش کنم

ببینین الان کد باتن به این صورته و ID رو زدم با کوئری استرینگ بگیره :

DAL d1 = new DAL();
        if (Page.IsValid == true)
        {
            string st = string.Format("Update Menu set Title=N'{0}',Link=N'{1}' where ID={2}",
            Title.Text, Link.Text, Request.QueryString["MenuID"]);
            d1.ExecNonQuery(st);
            Label1.Text = "تغییرات با موفقیت ذخیره شد.";
        }

پیغام میده تغییرات با موفقیت ذخیره شد اما ذخیره نمیشه!

کد رو به این صورت تغییر میدم یعنی به جای اینکه از کوئری استرینگ ID رو بخونه، از یه فیلد تکست باکس بخونه :

DAL d1 = new DAL();
        if (Page.IsValid == true)
        {
            string st = string.Format("Update Menu set Title=N'{0}',Link=N'{1}' where ID={2}",
            Title.Text, Link.Text, ID.Text);
            d1.ExecNonQuery(st);
            Label1.Text = "تغییرات با موفقیت ذخیره شد.";
        }

باز هم پیغام Lablel1 ظاهر میشه اما تغییرات در اصل ذخیره نمیشه!

تنها در صورتی ذخیره میشه که ID رو دستی بنویسم یعنی به این صورت :

DAL d1 = new DAL();
        if (Page.IsValid == true)
        {
            string st = string.Format("Update Menu set Title=N'{0}',Link=N'{1}' where ID=6",
            Title.Text, Link.Text);
            d1.ExecNonQuery(st);
            Label1.Text = "تغییرات با موفقیت ذخیره شد.";
        }

این سایت یک سال بود فعال بود و داشت درست کار میکرد! من برای اضافه کردن یه امکان که اصلا ربطی به پنل مدیریت هم نداشت (امکان آمار بازدید سایت) پروژه رو از اول مجبور شدم پابلیش کنم اما تمام صفحاتی که توی پنل ویرایش دارن دقیقا مثل همین شدن و ویرایششون کار نمیکنه!!!!

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • جمعه 30 شهریور 1397
  • 21:00

امیدوارم دلخور نشید ولی شما در 8 سال قبل موندید

الان همه از provider ها استفاده میکنند ولی شما خیلی روی شیوه سنتی تعصب دارید

پیشنهاد میکنم وارد entity یا dapper بشید

برای ارور هم متن ارورتون داره میگه یه جا روی = مشکل داره

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

کاربر سایت

ahmadi

عضویت از 1393/07/18

  • شنبه 31 شهریور 1397
  • 21:07

پیام های خصوصیتون چک کنید لطفا

کاربر سایت

moonfa1392

عضویت از 1394/08/17

  • یکشنبه 1 مهر 1397
  • 00:36

استاد من واقعا هیچ تعصبی روش ندارم

اما خب entity یا dapper که میفرمایید رو بلد نیستم، شرایطش رو هم ندارم بیام تهران کلاس :(

از ناچاری دارم با این روش کار میکنم خیلی هم توش به مشکل میخورم و به سختی مشکلاش حل میشه

حتی یه دوره MVC هم ازتون خریدم اگه یادتون باشه که 500 تومن هم شد، اما متاسفانه هر کاری کردم نتونستم صدا و تصویر رو با هم ست کنم، اصلا همخونی نداشت برای همین نتونستم MVC رو شروع کنم 

شما پیشنهادی دارید که چطوری و از کجا شروع کنم؟ آموزشگاه هایی هم که توی قم هست حتی اساتیدشون درست حسابی بلد نیستن که بخوام برم کلاس!

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 1 مهر 1397
  • 07:25

در تاپ لرن در دوره سی شارپ پیشرفته که رایگان است خودم آموزش دادم

آموزش سی شارپ پیشرفته

کاربر سایت

moonfa1392

عضویت از 1394/08/17

  • دوشنبه 2 مهر 1397
  • 14:38

خیلی گلین استاد دم شما گرم 

زدم دانلود شه که از همین امروز شروع کنم :)

کاربر سایت

moonfa1392

عضویت از 1394/08/17

  • پنجشنبه 14 آذر 1398
  • 11:38

دو ساله این مشکل که دستور آپدیت کار نمیکرد منو اذیت میکرد :)

توی هر سایتی هر کجا تاپیک زدم حل نشد :)

آخر دیدم فراموش کردم دستورات پیج لود رو با شرط If Post Back بنویسم!

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)