khz-web1
یک شنبه 19 مهر 1388, 01:45 صبح
من از کد زیر برای بایند استفاده می کنم ....
Imports System.Data.SqlClient
Imports System.Data
Imports System.Xml
Partial Class _Default
Inherits System.Web.UI.Page
Public writer As XmlWriter
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
Public Function GetMenuByParentID(ByVal parentId As Integer) As DataTable
Dim dt As New DataTable()
Using con As New SqlConnection("Data Source=.;Initial Catalog=testmenu;User ID=sa;Password=123456789")
con.Open()
Dim cmd As New SqlCommand("select * from TBLMenu where ParentID=@ParentID", con)
cmd.Parameters.AddWithValue("@ParentID", parentId)
Dim da As New SqlDataAdapter(cmd)
da.Fill(dt)
con.Close()
Return dt
End Using
End Function
Public Sub CreateMenu()
writer = XmlWriter.Create(Server.MapPath("Temp\menu.XML"))
writer.WriteStartDocument()
writer.WriteStartElement("Menu")
CreateNodes(0)
writer.WriteEndDocument()
End Sub
Public Sub CreateNodes(ByVal parentId As Integer)
Dim dt As DataTable = GetMenuByParentID(parentId)
For Each dr As DataRow In dt.Rows
writer.WriteStartElement("Node")
writer.WriteStartAttribute("ID")
writer.WriteValue(dr("MenuID").ToString())
writer.WriteEndAttribute()
writer.WriteStartAttribute("Name")
writer.WriteValue(dr("MenuName").ToString())
writer.WriteEndAttribute()
CreateNodes(Convert.ToInt32(dr("MenuID")))
writer.WriteEndElement()
Next
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
CreateMenu()
Response.Redirect("~/")
End Sub
End Class
ولی متاسفانه ارور های زیر رو میده
بعضی وقت ها اینو میده
The process cannot access the file 'i:\menu3\Temp\Menu.xml' because it is being used by another process
و بعضی وقت ها هم این ارور
Root element is missing.
دوستان روش بهتری برای ساهت منو سراغ ندارند که حالت Parent داشته باشه (زیر منو)
با تشکر
Imports System.Data.SqlClient
Imports System.Data
Imports System.Xml
Partial Class _Default
Inherits System.Web.UI.Page
Public writer As XmlWriter
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
Public Function GetMenuByParentID(ByVal parentId As Integer) As DataTable
Dim dt As New DataTable()
Using con As New SqlConnection("Data Source=.;Initial Catalog=testmenu;User ID=sa;Password=123456789")
con.Open()
Dim cmd As New SqlCommand("select * from TBLMenu where ParentID=@ParentID", con)
cmd.Parameters.AddWithValue("@ParentID", parentId)
Dim da As New SqlDataAdapter(cmd)
da.Fill(dt)
con.Close()
Return dt
End Using
End Function
Public Sub CreateMenu()
writer = XmlWriter.Create(Server.MapPath("Temp\menu.XML"))
writer.WriteStartDocument()
writer.WriteStartElement("Menu")
CreateNodes(0)
writer.WriteEndDocument()
End Sub
Public Sub CreateNodes(ByVal parentId As Integer)
Dim dt As DataTable = GetMenuByParentID(parentId)
For Each dr As DataRow In dt.Rows
writer.WriteStartElement("Node")
writer.WriteStartAttribute("ID")
writer.WriteValue(dr("MenuID").ToString())
writer.WriteEndAttribute()
writer.WriteStartAttribute("Name")
writer.WriteValue(dr("MenuName").ToString())
writer.WriteEndAttribute()
CreateNodes(Convert.ToInt32(dr("MenuID")))
writer.WriteEndElement()
Next
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
CreateMenu()
Response.Redirect("~/")
End Sub
End Class
ولی متاسفانه ارور های زیر رو میده
بعضی وقت ها اینو میده
The process cannot access the file 'i:\menu3\Temp\Menu.xml' because it is being used by another process
و بعضی وقت ها هم این ارور
Root element is missing.
دوستان روش بهتری برای ساهت منو سراغ ندارند که حالت Parent داشته باشه (زیر منو)
با تشکر