الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ماهو الخطاء بهذه الكود

بدأه مازن الاحمر في 7 نوفمبر 2011 · 26 رد · 2,943 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#26

السلام عليكم ..

الــ da.Fill لا يمسح البيانات القديمة ..بل يخزن نتيجة الاستعلام مع البيانات القديمة ...

و لفهم ما اقصد .. ضع على صفحة ما أربعة أزرار .. و ضع داخلها الكود التالي:

Imports System.Data.SqlClient
Imports System.Data

Partial Class Default5
	Inherits System.Web.UI.Page

	Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    	Dim con As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True")
    	con.Open()
    	Dim sql As String = "SELECT * FROM comnd WHERE id = 2"
    	Dim da As SqlDataAdapter = New SqlDataAdapter(sql, con)
    	Dim ds As DataSet = TryCast(Session("ds"), DataSet)
    	If (ds Is Nothing) Then
        	ds = New DataSet
    	End If
    	da.Fill(ds, "comnd")
    	Session("ds") = ds

	End Sub

	Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click

    	Dim con As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True")
    	con.Open()
    	Dim sql As String = "SELECT * FROM comnd WHERE id = 4"
    	Dim da As SqlDataAdapter = New SqlDataAdapter(sql, con)
    	Dim ds As DataSet = TryCast(Session("ds"), DataSet)
    	If (ds Is Nothing) Then
        	ds = New DataSet
    	End If
    	da.Fill(ds, "comnd")
    	Session("ds") = ds

	End Sub

	Protected Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button3.Click
    	Dim ds As DataSet = TryCast(Session("ds"), DataSet)
    	If ds Is Nothing Then
        	Return
    	End If
    	For Each dr As DataRow In ds.Tables("comnd").Rows
        	Response.Write(dr("id").ToString() & ",")

    	Next
	End Sub

	Protected Sub Button4_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button4.Click
    	Session("ds") = Nothing
	End Sub
End Class

و جرب الأزرار كالتالي ..

الأول ثم الثالث ثم الثاني ثم الثالث ..

ملاحظة : قد يحصل معك تكرار في البيانات .. لا أعرف حله في الوقت الحالي ..

تم تعديل هذه المشاركة بواسطة houssam11350_11350 في 13 نوفمبر 2011 في 20:24

1

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#27
houssam11350_11350 كتب:

السلام عليكم ..

الــ da.Fill لا يمسح البيانات القديمة ..بل يخزن نتيجة الاستعلام مع البيانات القديمة ...

و لفهم ما اقصد .. ضع على صفحة ما أربعة أزرار .. و ضع داخلها الكود التالي:

Imports System.Data.SqlClient
Imports System.Data

Partial Class Default5
	Inherits System.Web.UI.Page

	Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    	Dim con As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True")
    	con.Open()
    	Dim sql As String = "SELECT * FROM comnd WHERE id = 2"
    	Dim da As SqlDataAdapter = New SqlDataAdapter(sql, con)
    	Dim ds As DataSet = TryCast(Session("ds"), DataSet)
    	If (ds Is Nothing) Then
        	ds = New DataSet
    	End If
    	da.Fill(ds, "comnd")
    	Session("ds") = ds

	End Sub

	Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click

    	Dim con As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True")
    	con.Open()
    	Dim sql As String = "SELECT * FROM comnd WHERE id = 4"
    	Dim da As SqlDataAdapter = New SqlDataAdapter(sql, con)
    	Dim ds As DataSet = TryCast(Session("ds"), DataSet)
    	If (ds Is Nothing) Then
        	ds = New DataSet
    	End If
    	da.Fill(ds, "comnd")
    	Session("ds") = ds

	End Sub

	Protected Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button3.Click
    	Dim ds As DataSet = TryCast(Session("ds"), DataSet)
    	If ds Is Nothing Then
        	Return
    	End If
    	For Each dr As DataRow In ds.Tables("comnd").Rows
        	Response.Write(dr("id").ToString() & ",")

    	Next
	End Sub

	Protected Sub Button4_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button4.Click
    	Session("ds") = Nothing
	End Sub
End Class

و جرب الأزرار كالتالي ..

الأول ثم الثالث ثم الثاني ثم الثالث ..

ملاحظة : قد يحصل معك تكرار في البيانات .. لا أعرف حله في الوقت الحالي ..

------------------------------

مشكور استاذي العزيز . اشتغلل الكود لكن مثل ماقلت لي بيكون في تكرار ... انا بحاول اني ابعد التكرار اذا قدرت واذا ماقدرت سوف اسئلك .. يا غالي

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…