<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Panel ID="pnlAna" runat="server" >
<table cellpadding="0" cellspacing="0" >
<tr>
<td>
<asp:Label ID="lblHata" runat="server" BackColor="Yellow" ForeColor="Red"
Visible="False" Width="100%"></asp:Label>
</td>
</tr>
<table align="center" cellpadding="3" cellspacing="3">
<td style="color: #5D7B9D; font-weight: bold">
Sipariş Adresi</td>
<td colspan="2">
<asp:TextBox ID="txtAdres" runat="server" Rows="5" TextMode="MultiLine"
Width="300px"></asp:TextBox>
Sipariş Telefonu</td>
<asp:TextBox ID="txtTel" runat="server" Width="175px"></asp:TextBox>
</table>
<asp:Panel ID="pnlUrunListesi" runat="server" Visible="True">
<table cellpadding="3" cellspacing="3" width="100%">
<td> <asp:LinkButton ID="lnkUrunEkle" runat="server" BorderColor="#5D7B9D"
BorderStyle="Solid" ForeColor="#5D7B9D" Width="100%" Font-Bold="True"
Font-Italic="True">Siparişe Ürün Ekle</asp:LinkButton>
<asp:GridView ID="grdUrunler" runat="server" CellPadding="4" GridLines="None"
AutoGenerateColumns="False" ForeColor="#333333">
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<Columns>
<asp:BoundField DataField="urun" HeaderText="Ürün" />
<asp:BoundField DataField="adet" HeaderText="Adet" />
</Columns>
<FooterStyle BackColor="#5D7B9D" ForeColor="White" Font-Bold="True" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#999999" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:GridView>
<td align="center" >
<asp:Button ID="btnSiparisiKapat" runat="server" Text="Siparişi Kapat" BackColor="White"
Font-Bold="True" ForeColor="#5D7B9D" />
<img alt="" src="../images/10x10spacer.gif" />
<asp:Button ID="btnTaleptVazgec" runat="server"
Text="Siparişten Vazgeç" BackColor="White" Font-Bold="True"
ForeColor="#5D7B9D" />
</asp:Panel>
<td >
<img alt="" src="../images/10x10spacer.gif" /></td>
<asp:Panel ID="pnlUrunEkle" runat="server" Visible="False">
<table cellpadding="3" cellspacing="3">
<tr valign="top">
Ürün</td>
<asp:TextBox ID="txtUrun" runat="server" Rows="5" TextMode="MultiLine"
Adet</td>
<asp:TextBox ID="txtAdet" runat="server" Width="175px"></asp:TextBox>
<td align="center" colspan="2">
<asp:Button ID="btnUrunEkle" runat="server"
Text="Ürün Ekle" Font-Bold="True"
ForeColor="#5D7B9D" BackColor="White" />
</ContentTemplate>
</asp:UpdatePanel>
Sub DatasetOlustur()
Me.ViewState("dtUrunler") = Nothing
Dim dtUrunler As New DataTable
dtUrunler.TableName = "siparisAlt"
dtUrunler.Columns.Add(New DataColumn("Urun", GetType(String)))
dtUrunler.Columns.Add(New DataColumn("Adet", GetType(String)))
Me.ViewState("dtUrunler") = dtUrunler
End Sub
Protected Sub btnUrunEkle_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnUrunEkle.Click
Try
Dim dt As DataTable = Me.ViewState("dtUrunler")
Dim dr As DataRow
dr = dt.NewRow
dr("Urun") = txtUrun.Text
dr("Adet") = txtAdet.Text
dt.Rows.Add(dr)
Me.ViewState("dtUrunler") = dt
pnlUrunEkle.Visible = False
grdUrunler.DataSource = dt
grdUrunler.DataBind()
Catch ex As Exception
lblHata.Visible = True
lblHata.Text = "HATA : " & ex.Message
End Try
CREATE PROCEDURE [dbo].[proc_SiparisKayit]
@SiparisAdresi nvarchar(Max),
@SiparisTel nvarchar(50),
@siparisAlt xml
AS
BEGIN
Begin Tran
INSERT INTO tbl_Siparis
(SiparisAdresi, SiparisTel, SiparisTarihi)
VALUES (@SiparisAdresi,@SiparisTel, GETDATE())
Declare @SiparisId int
Select @SiparisId = @@Identity
SELECT
Cast(convert(varchar(36), @SiparisId ) as integer ) as SiparisId,
Cast(colx.query('data(Urun) ') as varchar) as Urun,
Cast(convert(varchar(36), colx.query('data(Adet) ') ) as integer ) as Adet
INTo #TMP FROM @siparisAlt.nodes('DocumentElement/siparisAlt') AS Tabx(Colx)
INSERT INTO tbl_SiparisAlt
(SiparisId, Urun, Adet)
SELECT * FROM #TMP
if @@error = 0
Commit Tran
Else
Rollback Tran
END
Protected Sub btnSiparisiKapat_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnSiparisiKapat.Click
Dim connSTR As String = "data source=.;initial Catalog=Siparis;uId=sa;pwd=1234"
Dim siparisAltTablosu As String
Using sw As New StringWriter()
dt.WriteXml(sw)
siparisAltTablosu = sw.ToString()
End Using
Using conn As New SqlConnection(connSTR)
conn.Open()
Dim cmd As New SqlCommand()
cmd.Connection = conn
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "proc_SiparisKayit"
Dim param0 As New SqlParameter("@SiparisAdresi", SqlDbType.NVarChar)
param0.Value = txtAdres.Text
cmd.Parameters.Add(param0)
Dim param1 As New SqlParameter("@SiparisTel", SqlDbType.NVarChar)
param1.Value = txtTel.Text
cmd.Parameters.Add(param1)
Dim param As New SqlParameter("@siparisAlt", SqlDbType.Xml)
param.Value = siparisAltTablosu
cmd.Parameters.Add(param)
cmd.ExecuteNonQuery()
Konuyu özetlemek gerekirse; diğer kayıt işlemlerinden farklı olarak stored procedurede xml veri türünde bir parametre tanımladık. Stored procedure içerisinde xml node özelliğini kullanarak datatable içerisindeki alanları okuduk. Ve parametreye değer atamak için, datatable ‘ın içeriğini xml olarak yazdırdık. Bu üç farkın yazılımlarınızda yararlı olması dileğiyle…
Imports System.IO
Imports System.Data.SqlClient
Partial Public Class datasetGonder
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
lblHata.Visible = False
If Not Page.IsPostBack Then
DatasetOlustur()
End If
Protected Sub lnkUrunEkle_Click(ByVal sender As Object, ByVal e As EventArgs) Handles lnkUrunEkle.Click
pnlUrunEkle.Visible = True
End Class