Ara
Generic filters
Exact matches only
Filter by Custom Post Type
Ana Sayfa / ASP.NET / Xml okuma tabloya yazdırma store procedure ile

Xml okuma tabloya yazdırma store procedure ile

Xml dosyası veritabanına parametreli olarak c# veya vb.net ile store procedure kullanarak gönderme

Xml okuma

xml tabloya yazdırma

Açıklama:
Bu makale sqlogren.com tarafından yayınlanıktadır.Orjinal içerik www.sqlogren.com adresinde yer almaktadır.

Bu noktadan sonra çalışacağımız xml dosyanın adı sample.xml olacaktır.Sizde kendi xml dosyasınızı oluşturmak için aşağıdaki kodların tümünde değişiklik yapmanız gerekecektir.Aşağıdaki kodları tasarım ekranından değiştiriniz.

[php]

<?xml version=”1.0″ encoding=”utf-8″ ?>
<users>
<user>
<FirstName>Suresh</FirstName>
<LastName>Dasari</LastName>
<UserName>SureshDasari</UserName>
<Job>Team Leader</Job>
</user>
<user>
<FirstName>Mahesh</FirstName>
<LastName>Dasari</LastName>
<UserName>MaheshDasari</UserName>
<Job>Software Developer</Job>
</user>
<user>
<FirstName>Madhav</FirstName>
<LastName>Yemineni</LastName>
<UserName>MadhavYemineni</UserName>
<Job>Business Analyst</Job>
</user>
</users>

[/php]

İlk defa oluşturacağımız xml için fiziksel bir dosya oluşturmamız gerekecek.Bunu Solution explorer içerisine girerek eklemek istediğiniz yere sağ tuş tıklayarak add new item yeni item ekle diyerek sample.xml dosyasını oluşturmalısınız.

[php]

<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<title>Send xml file as a parameter to SQL stored procedure in asp.net</title>
</head>
<body>
<form id=”form1″ runat=”server”>
<div>
<asp:Button ID=”btnSend” Text=”Send XML to Database” runat=”server” onclick=”btnSend_Click” /><br /><br />
<b>Inserted Records Details</b> :
<asp:GridView ID=”gvDetails” runat=”server”>
<HeaderStyle BackColor=”#df5015″ Font-Bold=”true” ForeColor=”White” />
</asp:GridView>
</div>
</form>
</body>
</html>

[/php]

Kod yazma codebehind bölümüne geldiğimizde ;

c# Kodu ile uzay kütüphanelerimize aşağıdaki kütüphanelerin mutlaka eklenilmiş olduğuna eğer eklenilmemişse sizin tarafınızdan eklenilmesi gerecektir.

[php]

using System;
using System.Data;
using System.Data.SqlClient;
using System.Xml;

[/php]

Şimdi kod penceresine aşağıdakileri yazalım.

[php]

protected void btnSend_Click(object sender, EventArgs e)
{
XmlTextReader xmlreader = new XmlTextReader(Server.MapPath(“Sample.xml”));
DataSet ds = new DataSet();
ds.ReadXml(xmlreader);
xmlreader.Close();
if (ds.Tables.Count != 0)
{
using (SqlConnection con = new SqlConnection(“Data Source=SureshDasari;Integrated Security=true;Initial Catalog=MySampleDB”))
{
con.Open();
SqlCommand cmd = new SqlCommand(“prc_readxmldata”, con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(“@XMLdata”, SqlDbType.Xml).Value = ds.GetXml();
SqlDataAdapter da=new SqlDataAdapter(cmd);
DataSet ds1=new DataSet();
da.Fill(ds1);
gvDetails.DataSource = ds1;
gvDetails.DataBind();
con.Close();
}
}
}

[/php]

Vb.net kodları aşağıdaki gibi olmalı.

[php]

Imports System.Data
Imports System.Data.SqlClient
Imports System.Xml
Partial Class Default2
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)

End Sub
Protected Sub btnSend_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim xmlreader As New XmlTextReader(Server.MapPath(“Sample.xml”))
Dim ds As New DataSet()
ds.ReadXml(xmlreader)
xmlreader.Close()
If ds.Tables.Count <> 0 Then
Using con As New SqlConnection(“Data Source=SureshDasari;Integrated Security=true;Initial Catalog=MySampleDB”)
con.Open()
Dim cmd As New SqlCommand(“prc_readxmldata”, con)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add(“@XMLdata”, SqlDbType.Xml).Value = ds.GetXml()
Dim da As New SqlDataAdapter(cmd)
Dim ds1 As New DataSet()
da.Fill(ds1)
gvDetails.DataSource = ds1
gvDetails.DataBind()
con.Close()
End Using
End If
End Sub
End Class

[/php]

Tüm bunları yapabilmek için bir adet store procedure ihtiyacımız olacak bunu oluşturmak için t-sql kodları aşağıdadır.Sql içerisinden bu kodları çalıştırarak store procedure ü oluşturabilirsiniz.

[php]

CREATE PROCEDURE prc_readxmldata
(
@XMLdata XML
)
AS
BEGIN
SELECT
t.value(‘(FirstName/text())[1]’,’nvarchar(120)’)AS FirstName ,
t.value(‘(LastName/text())[1]’,’nvarchar(120)’)AS LastName,
t.value(‘(UserName/text())[1]’,’nvarchar(120)’)AS UserName,
t.value(‘(Job/text())[1]’,’nvarchar(120)’)AS Job
FROM
@XMLdata.nodes(‘/users/user’)AS TempTable(t)
END
[/php]

Hepsi bu kadar kolay gelsin.


Ayrıca bknz.

HtmlHelper DropDownList için Enumerations kullanımı

HtmlHelper DropDownList için Enumerations kullanımı, ASP.Net MVC ile birlikte kullanılan html helper çok işlevsel ve …

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir