Asp.Net ile Stored Procedure Update Kullanimi
- Sevdanur GENC

- Jun 2, 2012
- 3 min read
Asp.Net projelerinizde Sql ifadelerinizi kullanirken bazi metodlara ihtiyac duydugumuzda Stored Procedure yapisini kullanmayi tercih ederiz. Peki bu yapilari kullanirken verilerimizi nasil listeleyebiliriz? Listeleme sonrasinda veriler uzerinde nasil degisiklikler yapabiliriz? Dilerseniz simdi adim adim bir web uygulamasinda Stored Procedure’ler de Update sql cumlesini nasil kullanildigimizi inceleyelim.
Oncelikle Visual Studio ‘nuzda bir Asp.Net Web Site uygulamasi olusturun ve ardindan MsSql Server Management Studio yardimi ile uygulamamizin veri tabani kismi icin kullanacagimiz bir table’i asagidaki gibi olusturalim
Icerisine veriler girdikten sonra, Stored Procedure’umuzu olusturalim,
Programmability’den Stored Procedure uzerinde sag click ile New Stored Procedure… secilir.
Ve acilan sql penceresinde asagida ki sorgu cumlelerini yazariz.
Tbl_Kitaplar Tablo Olusturma Kaynak Kodlari ;
CREATE TABLE tbl_Kitaplar(
(50) NULL,
(50) NULL,
NULL,
(50) NULL,
NULL,
(50) NULL,
NULL
);
Sp_KitapGetir Stored Procedure Olusturma Kaynak Kodlari ;
CREATE PROCEDURE sp_KitapGetir
AS
BEGIN
select * from tbl_Kitaplar
SET NOCOUNT ON;
END
Guncelleme islemlerini yapacagimiz Stored Procedure cumleside asagida ki gibidir;
Sp_KitapGuncelle Stored Procedure Olusturma Kaynak Kodlari ;
CREATE procedure sp_KitapGuncelle
@isbn varchar(50),
@baslik varchar(50),
@kacincibaski int,
@basimyili varchar(50),
@yayineviid int,
@resim varchar(50),
@fiyat real
as
begin
update tbl_Kitaplar
set baslik=@baslik,kacincibaski=@kacincibaski,basimyili=@basimyili,
yayineviid=@yayineviid,resim=@resim,fiyat=@fiyat
where isbn = @isbn
set nocount on;
end
Stored Procedurumuzu Execute edip kaydettikten sonra artik kullanici kaydini ekleyebilecegimiz web sayfasinin gorunumunu tasarlayabilir ve buna ait olan Kitap Listele butonunun icerisinde ki komutlari veri tabanina baglanti cumleleri ile birlikte yazmaya baslayabiliriz. Ayni zamanda GridView'de verilerimizi nasil listeleyebildigimizi ve listedeki secilen isbn'e ait olan tum verileri asagidaki text kutularina nasil aktarildigi hakkinda ilgili kodlari yazmamiz gerekiyor.
KitapListele.Aspx Kaynak Kodlari ;
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<table cellspacing="1" style="width: 100%">
<tr>
<td style="width: 98px"> <asp:Button ID="ButtonkitapListele" runat="server"
onclick="ButtonkitapListele_Click" Text="Kitap Listele" />
</td>
</tr>
<tr>
<td colspan="4">
<asp:GridView ID="GridKitap" runat="server" AllowPaging="True"
BackColor="White" BorderColor="#CC9966" BorderStyle="None" BorderWidth="1px"
CellPadding="4" onpageindexchanging="GridKitap_PageIndexChanging"
onselectedindexchanged="GridKitap_SelectedIndexChanged">
<RowStyle BackColor="White" ForeColor="#330099" />
<FooterStyle BackColor="#FFFFCC" ForeColor="#330099" />
<PagerStyle BackColor="#FFFFCC" ForeColor="#330099" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="#FFFFCC" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" CommandArgument="1" CommandName="Select" runat="server">DETAY</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</td>
</tr>
<tr>
<td style="width: 98px"> ISBN</td> <td>
<asp:TextBox ID="TextISBN" runat="server" Width="269px"></asp:TextBox>
</td>
</tr>
<tr>
<td style="width: 98px"> Başlık</td> <td>
<asp:TextBox ID="TextBaslik" runat="server" Height="19px" Width="269px"></asp:TextBox>
</td>
</tr>
<tr>
<td style="width: 98px"> Basım Yılı</td> <td>
<asp:TextBox ID="TextBasimYili" runat="server" Width="269px"></asp:TextBox>
</td>
</tr>
<tr>
<td style="width: 98px"> Kacinci Baski</td> <td>
<asp:TextBox ID="TextKacinciBaski" runat="server" Width="269px"></asp:TextBox>
</td>
</tr>
<tr>
<td style="width: 98px"> Yayin Evi Id</td> <td>
<asp:TextBox ID="TextYayinEviId" runat="server" Width="269px"></asp:TextBox>
</td>
</tr>
<tr>
<td style="width: 98px"> Resim</td> <td style="height: 23px">
<asp:TextBox ID="TextResim" runat="server" Width="269px"></asp:TextBox>
</td>
</tr>
<tr>
<td style="width: 98px"> Fiyat</td> <td>
<asp:TextBox ID="TextFiyat" runat="server" Width="269px"></asp:TextBox>
</td>
</tr>
<tr>
<td>
<asp:Button ID="btnGuncelle" runat="server" onclick="btnGuncelle_Click"
Text="Bilgilerde Guncelleme Yapiniz" Width="277px" />
</td>
</tr>
<tr>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
KitapListele.Aspx.Cs Kaynak Kodlari ;
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.SqlClient; using System.Data; namespace WebApplication1 { public partial class KitapListele : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } private void Listele() { SqlConnection con = new SqlConnection(@"Data Source=NANO_SNG;Initial Catalog=nanonungunlugu;Integrated Security=True"); SqlCommand cmd = new SqlCommand(); try { cmd.Connection = con; if (con.State == ConnectionState.Closed) { con.Open(); } cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "sp_KitapGetir"; SqlDataReader rd = cmd.ExecuteReader(); DataTable dt = new DataTable(); dt.Load(rd); GridKitap.DataSource = dt; GridKitap.DataBind(); } catch (Exception ee) { ee.ToString(); } finally { con.Close(); } } protected void ButtonkitapListele_Click(object sender, EventArgs e) { Listele(); } protected void GridKitap_PageIndexChanging(object sender, GridViewPageEventArgs e) { Listele(); GridKitap.PageIndex = e.NewPageIndex; GridKitap.DataBind(); } protected void GridKitap_SelectedIndexChanged(object sender, EventArgs e) { int secili = GridKitap.SelectedIndex; GridViewRow seciliSatir = GridKitap.Rows
; if (secili == -1) return; SqlConnection con = new SqlConnection(@"Data Source=NANO_SNG;Initial Catalog=nanonungunlugu;Integrated Security=True"); SqlCommand cmd = new SqlCommand(); try { cmd.Connection = con; if (con.State == ConnectionState.Closed) { con.Open(); } cmd.CommandType = CommandType.Text; cmd.CommandText = "select * from tbl_Kitaplar where isbn="+"'"+seciliSatir.Cells<1>
.Text+"'"; SqlDataReader rd = cmd.ExecuteReader(); DataTable dt = new DataTable(); dt.Load(rd); if (dt.Rows.Count >= 1) { DataRow sonucSatiri = dt.Rows<0>
;
TextISBN.Text = Convert.ToString(sonucSatiri["ISBN"]);
TextBaslik.Text = Convert.ToString(sonucSatiri["BASLIK"]);
TextBasimYili.Text = Convert.ToString(sonucSatiri["BASIMYILI"]);
TextKacinciBaski.Text = Convert.ToString(sonucSatiri["KACINCIBASKI"]);
TextYayinEviId.Text = Convert.ToString(sonucSatiri["YAYINEVIID"]);
TextResim.Text = Convert.ToString(sonucSatiri["RESIM"]);
TextFiyat.Text = Convert.ToString(sonucSatiri["FIYAT"]);
}
dt = null;
}
catch (Exception ee)
{
ee.ToString();
}
finally
{
con.Close();
}
}
protected void btnGuncelle_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(@"Data Source=NANO_SNG;Initial Catalog=nanonungunlugu;Integrated Security=True");
conn.Open();
SqlCommand ekle = new SqlCommand("sp_KitapGuncelle", conn);
ekle.CommandType = CommandType.StoredProcedure;
ekle.Parameters.Add("isbn", SqlDbType.VarChar).Value = TextISBN.Text;
ekle.Parameters.Add("baslik", SqlDbType.VarChar).Value = TextBaslik.Text;
ekle.Parameters.Add("basimyili", SqlDbType.VarChar).Value = TextBasimYili.Text;
ekle.Parameters.Add("yayineviid", SqlDbType.Int).Value = TextYayinEviId.Text;
ekle.Parameters.Add("resim", SqlDbType.VarChar).Value = TextResim.Text;
ekle.Parameters.Add("fiyat", SqlDbType.Real).Value = TextFiyat.Text;
ekle.Parameters.Add("kacincibaski", SqlDbType.Int).Value = TextKacinciBaski.Text;
ekle.ExecuteNonQuery();
conn.Close();
}
}
}
Ekran Goruntusu ;
Keyifli Calismalar Dilerim...
Comments