PDA

View Full Version : عدم ثبت دیتا بعد از تغییر



babak2000
یک شنبه 11 دی 1390, 15:03 عصر
در Page Load صفحه میام مقادیر کنترل ها را از بانک میخوانم (یک کوئری جهت بایند آنها )

و زمانی که مقادیر کنترل ها را تغییر میدم مثلا Text ها یا چک باکس ها و .... دکمه ثبت را میزنم

صفحه پست بک شده و همون مقادیر قبلی را دوباره ثبت میکنه یعنی آپدیت نمیشه

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

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

دوباره میره همون مقادیر را میخونه و سپس آپدیت میکنه که عملآ آپدیتی صورت نمیگیره

راهنمایی

hjran abdpor
یک شنبه 11 دی 1390, 15:20 عصر
با سلام.
کدتون را بزارید :

hamid_shrk
یک شنبه 11 دی 1390, 15:26 عصر
کدتون رو توی !ispostback بذارید

babak2000
یک شنبه 11 دی 1390, 15:43 عصر
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Request.Cookies("CookIdFile") Is Nothing Then 'AndAlso Page.IsPostBack = False
CookIdFile = Server.HtmlEncode(Request.Cookies("CookIdFile").Value.ToString)

End If
FillText()
End Sub



Sub FillText()
Dim DT As New DataTable
Dim cmd As New SqlCommand("SELECT * FROM File_Komisun where ID_File= '" + CookIdFile.ToString + "' ", cnn)
cnn.Open()
Dim Rd As SqlDataReader = cmd.ExecuteReader
If Rd.Read Then
TxtTedad.Text = Rd.Item("Tedad").ToString()
TimeEnd.Text = Rd.Item("DateEnd").ToString()
IsRow = True
Else
IsRow = False

End If
cnn.Close()
End Sub







Protected Sub BtnSabt_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnSabt.Click
If IsRow = False Then

Dim cmd As New SqlCommand(" INSERT INTO File_Komisun (DateEnd, Tedad)", cnn)


cmd.Parameters.AddWithValue("DateEnd", TimeEnd.Text)
cmd.Parameters.AddWithValue("Tedad", TxtTedad)

cnn.Open()
Dim Rd As SqlDataReader = cmd.ExecuteReader

ElseIf IsRow = True Then

Dim cmd As New SqlCommand("UPDATE File_Komisun SET DateStart =@DateStart, Tedad=@Tedad WHERE (ID_File ='" + CookIdFile.ToString + "')", cnn)
cmd.Parameters.AddWithValue("Tedad", TxtTedad.Text)
cmd.Parameters.AddWithValue("DateEnd", TimeEnd.Text)

cmd.Parameters.AddWithValue("ID_File ", CookIdFile)

cnn.Open()
Dim Rd As SqlDataReader = cmd.ExecuteReader


End If
'MsgBox("اطلاعات ثبت گردید", MsgBoxStyle.Information, "اعلام")
Response.Write("<Script>alert('اطلاعات ثبت گردید');</Script>")

End Sub

Saman Hashemi
دوشنبه 12 دی 1390, 07:20 صبح
همونطور که گفتند کد لود صفحه داخل if زیر بذارید...!
if(!IsPostBack)
{
//کدهای درون لود صفحه
}

babak2000
دوشنبه 12 دی 1390, 09:15 صبح
دوست عزیز این کار را انجام دادم



AndAlso Page.IsPostBack = False

یعنی ساب FillText را داخل if گذاشتم برای آپدیت مشکلی بوجود نمیاد ولی برای اینسرت چرا

چون ممکن داخل Table هیچ رکوردی برای آن فرد ثبت نشده باشه