آژانس هواپیمایی
pop up

مشکل در ادیت کردن مطلب

شروع موضوع توسط ma_christian ‏27 دسامبر 2007 در انجمن asp , ASP.NET

  1. ma_christian

    ma_christian Registered User

    تاریخ عضویت:
    ‏25 ژانویه 2007
    نوشته ها:
    366
    تشکر شده:
    2
    محل سکونت:
    Tehran
    سلام

    ممکن است یک توضیحی درباره ادیت کردن مطالبی که در دیتابیس ثبت شده بدهید. اینکه چگونه می توانیم اینکار رو بکنیم ... چند تا راه رو امتحان کردم نشد ... :(
    من با VB.NET کار می کنم . ما باید مطالب رو حاضر کنیم در یک سری تکست باکس و بعد دوباره اونها رو ویرایش کنیم (که این قسمت دومش چیز خاصی نداره)

    ممنون میشم کمک کنید ... ​
     
  2. H_R

    H_R مدیر بازنشسته

    تاریخ عضویت:
    ‏30 مارس 2005
    نوشته ها:
    3,285
    تشکر شده:
    15
    محل سکونت:
    North Pole
    مشکلت چیه ؟ دیتابیست چیه !
    چیکارا کردی تا به حال که نشده ؟؟
    احتمال دیتابیست اکسز یا XML نیست ؟
    میتونی ورود اطلاعات کنی ولی آپدیت نه ؟ای ورود هم نمیتونی انجام بدی ؟
     
  3. ma_christian

    ma_christian Registered User

    تاریخ عضویت:
    ‏25 ژانویه 2007
    نوشته ها:
    366
    تشکر شده:
    2
    محل سکونت:
    Tehran
    ورود رو خیلی راحت می تونم انجام بدم.
    برای حاضر کردن نوشته ها هم از ریپیتر استفاده می کنم.

    اما خوب نمی تونم اونها رو در یک تکست باکس حاضر کنم.
    اتفاقا بعد از درج این تاپیک یک ریپیتر ساده درست کردم و توی اون یک تکست باکس گذاشتم و مقادیر مورد نظر رو هم تونستم در تکست باکس حاضر کنم ... اما اسمش توسط فرم و ریپیتر عوض میشه بصورت:


    کاری که من کردم:
    PHP:
    <%@ Page Language="VB"%>
    <
    head id="head1" runat="server" />
    <%@ 
    Import Namespace="System.Data" %>
    <%@ 
    Import Namespace="System.Data.OleDb" %> 
    <%@ 
    Import Namespace="System.Data.SQLClient" %>
    <
    script runat="server">
        
    Sub page_load()
            
    Dim dbconnsqldbcommdbread
            dbconn 
    = New OleDbConnection("..............................")
            
    dbconn.Open()
            
    sql "SELECT title FROM table where Id='" Request.QueryString("Id") & "'"
            
    dbcomm = New OleDbCommand(sqldbconn)
            
    dbread dbcomm.ExecuteReader()
            
    editpost.DataSource dbread
            editpost
    .DataBind()
            
    dbread.Close()
            
    dbconn.Close()
        
    End Sub
        
        Sub update
    (ByVal Source As ObjectByVal E As EventArgs)
            
    Dim MySQL As String "update table set [email protected] where Id='" Request.QueryString("Id") & "'"
            
    Dim myConn As SqlConnection = New SqlConnection("..............................")
            
    Dim Cmd As New SqlCommand(MySQLmyConn)
            
    myConn.Open()
            
    'Cmd.Parameters.Add(New SqlParameter("@title", TEST.Text))
            Cmd.ExecuteNonQuery()
            myConn.Close()
            Response.Redirect("edit.aspx")     
        End Sub

    </script>
    <html>
    <body>
    <form runat="server" id="frm_edit">
      <asp:repeater ID="editpost" runat="server">
        <ItemTemplate>
            <asp:TextBox Font-names="Tahoma" ID="TEST" runat="server" value='
    <%#Container.DataItem("Title")%>' Width="500px"></asp:TextBox>
            
    <asp:button OnClick="update" id="submit" Font-Names="Tahoma"  Text="submit" runat="server" Width="140px" Height="27px" />
        </
    ItemTemplate>
      </
    asp:repeater>
    </
    form>
    </
    body>
    </
    html>
    خروجی داده شده: (بدون ارور) - یک خط آپدیت رو برای اجرا کامنت کردم
    PHP:
    <head id="head1"><title>

    </
    title></head>


    <
    html>
    <
    body>

    <
    form name="frmedit" method="post" action="editpost.aspx?Id=23" id="frm_edit">
    <
    div>
    <
    input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTExMjM3NzcwMzMPZBYCAgMPZBYCAgEPFgIeC18hSXRlbUNvdW50AgEWAmYPZBYCAgEPD2QWAh4FdmFsdWUFgQHYtNis2LHbjNin2YY6INiz2KfYstmF2KfZhuKAjNmH2KfZiiDYr9mI2YTYqtmKINmIINi02LHZg9iq4oCM2YfYp9mKINiu2LXZiNi12Yog2K/YsSDYqtmD2YXZitmEINio2KfYuiDZh9mG2LEg2KjZhSDZg9mF2YMg2YPZhtmG2K9kZCN3OOkvDWYJoA5tgqKnHtLn6Nlj" />
    </
    div>
    <
    input name="editpost$ctl00$editpost_ctl00_TESTtype="text" id="editpost_ctl00_editpost_ctl00_Test" value="...... values ......." style="font-family:Tahoma;width:500px;" />
    <
    input type="submit" name="editpost$ctl00$submitvalue="submit" id="editpost_ctl00_submit" style="font-family:Tahoma;height:27px;width:140px;" />
    <
    div>
    <
    input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAwKWwN7WBwL7rs6zAwLT+OWfBnnC+Ww6mw065ZSI8OE5zoQrt0p7" />
    </
    div></form>
    </
    body>
    </
    html>

    که موقع آپدیت کردن ارور می گیره که مثلا فلان تکست باکس وجود نداره چون خودش اسمش رو عوش می کنه

    دیتابیسم هم MSSQL هست.

    ممنون و ببخشید
     
  4. ma_christian

    ma_christian Registered User

    تاریخ عضویت:
    ‏25 ژانویه 2007
    نوشته ها:
    366
    تشکر شده:
    2
    محل سکونت:
    Tehran
    دوستان عزيز كمك نمي كنيد؟!

    منتظر هستم ...
     
  5. Graveworm

    Graveworm Registered User

    تاریخ عضویت:
    ‏23 می 2005
    نوشته ها:
    1,063
    تشکر شده:
    12
    محل سکونت:
    Tehran
    برای edit کردن از formview و Detailsview چرا استفاده نمیکنید ؟
     
  6. ma_christian

    ma_christian Registered User

    تاریخ عضویت:
    ‏25 ژانویه 2007
    نوشته ها:
    366
    تشکر شده:
    2
    محل سکونت:
    Tehran
    يكم راهنمايي مي كنيد كه چكار بايد بكنم؟
    ممنون
     
  7. boxilink
  8. ma_christian

    ma_christian Registered User

    تاریخ عضویت:
    ‏25 ژانویه 2007
    نوشته ها:
    366
    تشکر شده:
    2
    محل سکونت:
    Tehran
    تو را من چشم در راهم ...
     
  9. Graveworm

    Graveworm Registered User

    تاریخ عضویت:
    ‏23 می 2005
    نوشته ها:
    1,063
    تشکر شده:
    12
    محل سکونت:
    Tehran

    راه ساده اینه که یه sqldatasource بندازی تو صفحه و با ویزاردش اون رو کانفیگ کنید
    بعد هم یه formview بیارید و به sqldatasource ، بایند کنید
     
  10. ma_christian

    ma_christian Registered User

    تاریخ عضویت:
    ‏25 ژانویه 2007
    نوشته ها:
    366
    تشکر شده:
    2
    محل سکونت:
    Tehran
    داشتم یکمی با این موضوع کلنجار می رفتم گفتم این رو هم امتحان کنم:

    ببینید من برای دریافت داده ها و آپدیت آنها از کد زیر استفاده کردم.
    مشکل این هست که وقتی می خواهم آپدیت کنم چون در متد page_load دوباره اطلاعات بازخوانی میشه پس مقدار تکست باکس همون مقدار قبلی میشه. پس در ظاهر هیچ چیزی آپدیت نمیشه.
    چون مجبور هم هستم فارسی ثبت کنم پس باید فرمم runat="server" باشه.

    PHP:
        Sub page_load(ByVal Source As ObjectByVal E As EventArgs)
            
    Dim DBConn As New OleDbConnectiondsBindData As New DataSetDBCommand As OleDbDataAdapter
            DBConn 
    = New OleDbConnection("...")
            
    DBCommand = New OleDbDataAdapter("Select * from myTable "DBConn)
            
    DBCommand.Fill(dsBindData"myTable")
            
    username.text dsBindData.Tables("myTable").Rows(0).Item("fldTable")
            
    DBConn.Close()
            
        
    End Sub
        Sub submiteditprofile
    (ByVal Source As ObjectByVal E As EventArgs)
            
    Dim MySQL As String "UPDATE myTable SET [email protected]"
            
    Dim myConn As SqlConnection = New SqlConnection("...")
            
    Dim Cmd As New SqlCommand(MySQLmyConn)
            
    myConn.Open()
            
    Cmd.Parameters.Add(New SqlParameter("@username"username.Text))
            
    Cmd.ExecuteNonQuery()
            
    myConn.Close()
        
    End Sub
     
  11. amin_lili

    amin_lili کاربر تازه وارد

    تاریخ عضویت:
    ‏24 آپریل 2007
    نوشته ها:
    528
    تشکر شده:
    2
    محل سکونت:
    ای کاش آنجا ...
    دوست عزیز اصولا کدهایی که در Page_Load استفاده میشن رو باید بررسی کنی ببینی آیا باید در هر عملیات post back اجرا بشن یا فقط یکبار و اونهم موقع لود شدن صفحه اجرا بشن ؟
    هر بار که یکی از متدهای سروری شامل کلیک بر روی یک دگمه و ... فراخوانی می شن ابتدا متد Page_Load اجرا میشه بنابراین طبیعیه که تمام کدهای درون این متد اجرا می شن . پس در مثال شما دوباره ریپیتر پر میشه و در نتیجه تکست باکس مقداری که شما وارد کردی رو از دست می ده . بنابراین شما باید جلو این قضیه رو بگیرید.
    برای این کار باید مشخص کنید که کدام دسته از کدها باید فقط یکبار و آنهم هنگام لود شدن صفحه اجرا بشن . با شرط زیر درون متد Page_Loadمی تونید این کار رو انجام بدید :
    کد:
    if(!IsPostBack()) 
    {
    //your code
    }
    
     
  12. ma_christian

    ma_christian Registered User

    تاریخ عضویت:
    ‏25 ژانویه 2007
    نوشته ها:
    366
    تشکر شده:
    2
    محل سکونت:
    Tehran
    دست شما درد نکنه

    دگه مشکل حل شد.