Eğitim
Modül
C#’taki tür değiştirme ve dönüştürme tekniklerini kullanarak veri türlerini dönüştürme - Training
Atamalar ve dönüştürmeler için C# tekniklerini kullanarak keşfedin.
Bu tarayıcı artık desteklenmiyor.
En son özelliklerden, güvenlik güncelleştirmelerinden ve teknik destekten faydalanmak için Microsoft Edge’e yükseltin.
Bu makalede, bir ADO.NET DataSet
nesnesinden ayıklanan XML'deki sütunların nasıl biçimlendirileceğini DateTime
ve Date
değerlerinin DataTable
nasıl biçimlendirileceğini açıklanmaktadır.
Özgün ürün sürümü: Visual Basic .NET
Özgün KB numarası: 811767
ADO.NET sütunlarının DateTime
ve Date
değerleri DataTable
XSD'de DateTime
yazılır ve Date
XML olarak kaydedildiğinde DataSet
biçimlendirilir. Standart XSD DateTime
ve Date
biçimler sırasıyla CCYY-MM-DDThh:mm:ss ve CCYY-MM-DD'dir, çünkü veritabanının DataSet
temel XSD şeması veritabanının ve Date
sütunlarını ve XSD Date
veri türlerine DateTime
eşlerDateTime
.
Ve değerlerinin gerekli özel biçimlerde temsil edildiği XML DateTime
Date
oluşturmak için aşağıdaki yöntemlerden birini kullanın.
Microsoft Visual Studio .NET'i açın. Visual Basic .NET'te DateTimeXmlConvert adlı yeni bir ASP.NET web uygulaması projesi oluşturun.
WebForm1.aspx'nin tasarımcı yüzeyine sağ tıklayın ve ardından Kodu Görüntüle'ye tıklayın.
WebForm1.aspx.vb yönergelerinin Imports
sonuna aşağıdaki kodu ekleyin:
Imports System.Xml
Imports System.Text
Imports System.Data.SqlClient
Olaya aşağıdaki kodu yapıştırın Page_Load
:
' Change SqlServerName, UserId and Password in the following connection string.
Dim conn As String = "Server=<SQLServerName>; database=Northwind; user id=<UserID>; password=<Password>;"
Dim connection As SqlConnection = New SqlConnection()
connection.ConnectionString = conn
Dim objDataSet As DataSet = New DataSet()
Dim objAdapter As SqlDataAdapter = New SqlDataAdapter()
Dim objCmd As SqlCommand = New SqlCommand()' Retrieve the first 10 records from the employees table.
objCmd.CommandText = "select top 10 FirstName,BirthDate from employees"
objCmd.Connection = connection
objAdapter.SelectCommand = objCmd
objAdapter.Fill(objDataSet)
connection.Close()' Create an instance of XmlTextReader class that reads the XML data.
Dim xmlReader As XmlTextReader = New XmlTextReader(objDataSet.GetXml(),XmlNodeType.Element,Nothing)
Response.ContentType = "text/xml"
Dim xmlWriter As XmlTextWriter = New XmlTextWriter(Response.OutputStream,Encoding.UTF8)
xmlWriter.Indentation = 4
xmlWriter.WriteStartDocument()
Dim elementName As String = ""
' Parse & display each node
While xmlReader.Read()
Select Case xmlReader.NodeType
Case XmlNodeType.Element
xmlWriter.WriteStartElement(xmlReader.Name)
elementName = xmlReader.Name
Case XmlNodeType.Text
If elementName.ToLower() = "birthdate" Then
xmlWriter.WriteString(XmlConvert.ToDateTime(xmlReader.Value).ToString())
Else
xmlWriter.WriteString(xmlReader.Value)
End If
Case XmlNodeType.EndElement
xmlWriter.WriteEndElement()
End Select
End While
xmlWriter.Close()
değişiklikleri WebForm1.aspx.vb kaydedin.
Yapı menüsünde Yapı Çözümü’ne tıklayın.
Microsoft Internet Explorer'ı başlatın ve URL'yi belirterek http://IISServerName/DateTimeXmlConvert/WebForm1.aspx
WebForm1.aspx açın; burada IISServerName, Microsoft Internet Information Services (IIS) sunucunuzun adıdır.
Artık tarayıcıda işlenen XML dosyasının özel DateTime
biçimde görüntülendiğini görebilirsiniz.
Özel yordamları uygulamak için satır içi betik bloklarını ve XSLT Uzantısı nesneleri olarak bilinen dış kod bileşenlerini kullanabilirsiniz. Hesaplamalar yapmak ve verileri işlemek için XSLT sırasında bunlar çağrılır. Microsoft, satır içi betik bloklarını kullanmaktan kaçınmanızı önerir. Taşınabilir XSLT stil sayfaları tasarlarken özel yordamlar uygulamak için uzantı nesnelerini kullanabilirsiniz.
DateTimeXSLT adlı yeni bir Visual Basic .NET ASP.NET Web uygulaması projesi oluşturun.
Projeye DateConvertor.vb adlı yeni bir sınıf ekleyin.
Mevcut kodu sınıfında aşağıdaki kodla DateConvertor
değiştirin:
Public Class DateConvertor
Public Function GetDateTime(ByVal data As String, ByVal format As String) As String
Dim dt As DateTime = DateTime.Parse(data)
Return dt.ToString(format)
End Function
End Class
değişiklikleri DateConvertor.vb kaydedin.
WebForm1.aspx'nin tasarımcı yüzeyine sağ tıklayın ve ardından Kodu Görüntüle'ye tıklayın.
WebForm1.aspx.vb yönergelerinin Imports
sonuna aşağıdaki kodu ekleyin:
Imports System.IO
Imports System.Xml
Imports System.Xml.Xsl
Imports System.Xml.XPath
Imports System.Data.SqlClient
Olaya aşağıdaki kodu yapıştırın Page_Load
:
' Change SqlServerName, UserId and Password in the following connection string.
Dim strConn As String = "Server=<SQLServerName>; database=Northwind; user id=<UserID>; password=<Password>;"
Dim connection As SqlConnection = New SqlConnection()
connection.ConnectionString = strConn
Dim objDataSet As DataSet = New DataSet()
Dim objAdapter As SqlDataAdapter = New SqlDataAdapter()
Dim objCmd As SqlCommand = New SqlCommand()' Retrieve all records from employees table.
objCmd.CommandText = "select FirstName,BirthDate from employees"
objCmd.Connection = connection
objAdapter.SelectCommand = objCmd
objAdapter.Fill(objDataSet)
connection.Close()' Create an instance of StringReader class that reads the XML data.
Dim reader As StringReader = New StringReader(objDataSet.GetXml())
Dim doc As XPathDocument = New XPathDocument(reader)' Create an XslTransform object and load xslt file.
Dim transform As XslTransform = New XslTransform()
transform.Load(Me.MapPath("DateTime.xslt"))'Add an object to convert DateTime format.
Dim objDateConvertor As DateConvertor = New DateConvertor()
Dim args As XsltArgumentList = New XsltArgumentList()
args.AddExtensionObject("urn:ms-kb", objDateConvertor)
transform.Transform(doc, args, Response.OutputStream)
değişiklikleri WebForm1.aspx.vb kaydedin.
DateTimeXSLT ASP.NET Web Projesine DateTime.xslt adlı yeni bir XSLT dosyası ekleyin.
Oluşturulan kodu aşağıdaki kodla değiştirin. (Aşağıdaki kodu yapıştırmaya çalıştığınızda herhangi bir kodlama veya karakter sorunuyla karşılaşırsanız, not defterini aracı araç olarak kullanın.)
<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:myObj="urn:ms-kb">
<xsl:template match="NewDataSet">
<table>
<xsl:attribute name="border">1</xsl:attribute>
<TR>
<TD>Employee name</TD>
<TD>Original DateTime Format</TD>
<TD>Changed DateTime Format</TD>
</TR>
<xsl:apply-templates select="*"/>
</table>
</xsl:template>
<xsl:template match="*">
<TR>
<xsl:apply-templates select="*"/>
</TR>
</xsl:template>
<xsl:template match="FirstName">
<TD>
<xsl:value-of select="."/>
</TD>
</xsl:template>
<xsl:template match="BirthDate">
<xsl:variable name="Date" select="."/>
<TD>
<xsl:value-of select="$Date"/>
</TD>
<TD>
<xsl:value-of select="myObj:GetDateTime($Date, 'F')"/>
</TD>
</xsl:template>
</xsl:stylesheet>
DateTime.xslt dosyasındaki değişiklikleri kaydedin.
http://IISServerName/DateTimeXSLT/WebForm1.aspx
WebForm1.aspx açın.Artık WebForm1.aspx sayfasında DataSet biçimi ve dönüştürülmüş DateTime
biçim olan iki DateTime
DateTime
biçimi görebilirsiniz.
Eğitim
Modül
C#’taki tür değiştirme ve dönüştürme tekniklerini kullanarak veri türlerini dönüştürme - Training
Atamalar ve dönüştürmeler için C# tekniklerini kullanarak keşfedin.