Konu: c# da xml dosyasını sql servera aktarmak
xml deki datayı sql servera yazmam gerekiyor
dili bilmemek çok kötü gerçekten
allta bunu yaptım düzgün de çalışıyor. ama mantığı saçma geldi
mutlaka daha mantıklı yolu vardır diye düşünüyorum
bu kodu optimize edebilirmisiniz.
kisaca şöyle
hasta.xml den h_protokol , h_isim , h_ad , h_soyad , h_ceptel , h_tel1 , h_tel2 , h_tel3 , h_tel4
elemanlarını sıra ile okuyorum sıra h_email e geldiğinde hemen sonra gidip sql servera yazıyorum
şimdiden teşekkürler
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml;
using System.Data.SqlClient;
namespace drorgdis
{
public partial class xmltosqlserver : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
string sonkayit;
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection conn1 = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnStr_alp"].ToString());
conn1.Open();
XmlTextReader xmld = new XmlTextReader(@"C:\\hasta.xml");
try
{
while (xmld.Read())
{
if (xmld.NodeType == XmlNodeType.Element)
{
sonkayit = "hayir";
switch (xmld.Name)
{
case "h_protokol":
TextBox1.Text = Convert.ToString(xmld.ReadString().Trim());
break;
case "h_isim":
TextBox2.Text = Convert.ToString(xmld.ReadString().Trim());
break;
case "h_ad":
TextBox3.Text = Convert.ToString(xmld.ReadString().Trim());
break;
case "h_soyad":
TextBox4.Text = Convert.ToString(xmld.ReadString().Trim());
break;
case "h_ceptel":
TextBox5.Text = Convert.ToString(xmld.ReadString().Trim());
break;
case "h_tel1":
TextBox6.Text = Convert.ToString(xmld.ReadString().Trim());
break;
case "h_tel2":
TextBox7.Text = Convert.ToString(xmld.ReadString().Trim());
break;
case "h_tel3":
TextBox8.Text = Convert.ToString(xmld.ReadString().Trim());
break;
case "h_tel4":
TextBox9.Text = Convert.ToString(xmld.ReadString().Trim());
break;
case "h_email":
sonkayit = "evet";
TextBox10.Text = Convert.ToString(xmld.ReadString().Trim());
break;
}
if (sonkayit == "evet")
{
string komut = @" insert into hasta (protokol,isim,ad,soyad,ceptel,tel1,tel2,tel3,tel4,email) values (@protokol,@isim,@ad,@soyad,@ceptel,@tel1,@tel2,@tel3,@tel4,@email)";
SqlCommand cmd2 = new SqlCommand(komut, conn1);
cmd2.Parameters.AddWithValue("@protokol", TextBox1.Text.Trim());
cmd2.Parameters.AddWithValue("@isim", TextBox2.Text.Trim());
cmd2.Parameters.AddWithValue("@ad", TextBox3.Text.Trim());
cmd2.Parameters.AddWithValue("@soyad", TextBox4.Text.Trim());
cmd2.Parameters.AddWithValue("@ceptel", TextBox5.Text.Trim());
cmd2.Parameters.AddWithValue("@tel1", TextBox6.Text.Trim());
cmd2.Parameters.AddWithValue("@tel2", TextBox7.Text.Trim());
cmd2.Parameters.AddWithValue("@tel3", TextBox8.Text.Trim());
cmd2.Parameters.AddWithValue("@tel4", TextBox9.Text.Trim());
cmd2.Parameters.AddWithValue("@email", TextBox10.Text.Trim());
int donenkayitsayisi = cmd2.ExecuteNonQuery();
if (donenkayitsayisi > 0)
{ Response.Write("kayıt edildi "); }
else
{ Response.Write("kayıt edilmedi"); }
}
}
}
}
catch (Exception ex)
{ Response.Write("Xml e bağlanamadım : " + ex.Message); }
xmld.Close();
conn1.Close();
}
}
}
xml dosyasi hasta.xml
********************
<?xml version="1.0" encoding="Windows-1254" standalone="yes" ?>
- <VFPData>
- <xsd:schema id="VFPData" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xsd:element name="VFPData" msdata:IsDataSet="true">
- <xsd:complexType>
- <xsd:choice maxOccurs="unbounded">
- <xsd:element name="ghasta" minOccurs="0" maxOccurs="unbounded">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="h_protokol">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string">
<xsd:maxLength value="10" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
- <xsd:element name="h_isim">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string">
<xsd:maxLength value="40" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
- <xsd:element name="h_ad">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string">
<xsd:maxLength value="20" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
- <xsd:element name="h_soyad">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string">
<xsd:maxLength value="20" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
- <xsd:element name="h_ceptel">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string">
<xsd:maxLength value="10" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
- <xsd:element name="h_tel1">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string">
<xsd:maxLength value="20" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
- <xsd:element name="h_tel2">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string">
<xsd:maxLength value="20" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
- <xsd:element name="h_tel3">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string">
<xsd:maxLength value="20" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
- <xsd:element name="h_tel4">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string">
<xsd:maxLength value="20" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
- <xsd:element name="h_email">
- <xsd:simpleType>
- <xsd:restriction base="xsd:string">
<xsd:maxLength value="40" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:choice>
<xsd:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="lax" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
- <ghasta>
<h_protokol>0066117</h_protokol>
<h_isim>Abdulkadir Çimen</h_isim>
<h_ad>Abdulkadir</h_ad>
<h_soyad>Çimen</h_soyad>
<h_ceptel>5134847051</h_ceptel>
<h_tel1>İş 0212 474 19 00</h_tel1>
<h_tel2>İş 0212 310 75 49</h_tel2>
<h_tel3>Cep 0532 484 70 51</h_tel3>
<h_tel4>Ev 0552 273 89 25</h_tel4>
<h_email>abdulkadir@suddbora1.com</h_email>
</ghasta>
- <ghasta>
<h_protokol>0107762</h_protokol>
<h_isim>Abdullah Ergen</h_isim>
<h_ad>Abdullah</h_ad>
<h_soyad>Ergen</h_soyad>
<h_ceptel>5359257014</h_ceptel>
<h_tel1>Ev 0212 428 41 11</h_tel1>
<h_tel2>Cep 0532 925 70 01</h_tel2>
<h_tel3>Ev 0552 273 89 21</h_tel3>
<h_tel4>Ev 0552 273 89 21</h_tel4>
<h_email>palidrom11@hotmail.com</h_email>
</ghasta>
</VFPData>