BLG4134 Görsel Programlama III Öğr. Grv. Aybike ŞİMŞEK
CV_EKLE isimli bir veritabanı oluşturun. CV isimli tabloyu aşağıdaki şekilde oluşturun.
Aşağıdaki kod ile bir stored procedure oluşturun. Bunun için Programmability + tıklanarak açılır, Stored Procedure sağ tıklanır ve «new stored procedure» tıklanır.
Açılan sayfanın içeriği silinir.
Aşağıdaki kod yazılır ve çalıştırılır. use CV_EKLE go CREATE PROCEDURE Sp_AddFiles AS SELECT TOP 1 AdSoyad FROM CV
Oluşan SP_AddFiles dosyası Modify modda açılır. İçeriği silinir ve aşağıdaki kod eklenip çalıştırılır. USE [CV_EKLE] GO /****** Object: StoredProcedure [dbo].[sp_addfiles] Script Date: 04/21/2015 14:27:11 ******/ ( SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER Procedure [dbo].[sp_addfiles] @AdSad Varchar(50), @Unvan Varchar (50), @icerik Varchar (max), @fname Varchar(200), @ext char(10), @fdata VarBinary(max) ) As Begin Insert Into CV(AdSoyad,Unv, Icrk,FileName,Extension,FileData) Values(@AdSad,@Unvan,@icerik,@fname,@ext,@fdata) End
Veritabanına Dosya Kaydetme Visual Studio 2010 da CV_EKLE isimli yeni bir web uygulaması başlatın ve Default.aspx sayfasını aşağıdaki şekilde düzenleyin.
Dersin web sayfasında verilen aşağıdaki dosyaları projenize ekleyin. anatablo.cs DataHelper.cs mesaj.cs Upload.cs
Button1 Click olayına aşağıdaki kodu yazın if (FileUpload1.HasFile) { Int32 intfilesize = 0; Stream filestream = null; // Gets the Size of the File intfilesize = FileUpload1.PostedFile.ContentLength; // Reads the File filestream = FileUpload1.PostedFile.InputStream; byte[] filecontent = new byte[intfilesize + 1]; int intstatus = 0; intstatus = filestream.read(filecontent, 0, intfilesize); string ext = System.IO.Path.GetExtension(FileUpload1.FileName.ToString()); islem1.ac(); if (obj.uploadfile(textbox1.text, TextBox2.Text, TextBox3.Text, FileUpload1.FileName.ToString(), filecontent, ext)) { TextBox1.Text=""; TextBox2.Text=""; TextBox3.Text=""; MessageBox.Show("Kayıt Başarılı bir şekilde eklenmiştir."); } else MessageBox.Show("Resim eklemeyi unuttunuz.");
ConnectionString Upload obj = new Upload(); anatablo islem1 = new anatablo(); Tanımlamalarını yapmayı unutmayın!!! ÇALIŞTIRIP GÖZLEMLEYİN.
Stored Procedure ü ekleyin. Bunun için SQL Server Management Studio açılır CV_EKLE veritabanı
dosyaoku.aspx isimli bir sayfa ekleyin. Sayfanın altına «Dosya Oku» şeklinde bir link ekleyin ve linki bu sayfaya bağlayın.
dosyaoku.aspx sayfasına bir GridView ekleyin ve aşağıdaki şekilde düzenleyin.
Seçme özelliğini açın ve sütun isimlerini aşağıdaki şekilde düzenleyin.
DOSYA İNDİR isimli bir buton ekleyin.
CV tablosunu aşağıdaki şekilde güncelleyin.
GridView1_SelectedIndexChanged olayına: GridView1.SelectedRowStyle.BackColor = System.Drawing.Color.Bisque; if (GridView1.SelectedRow.Cells[1].Text!= "" && GridView1.SelectedRow.Cells[1].Text!= " ") Button1.Enabled = true; else Button1.Enabled = false;
Dosyaları veritabanından okuyabilmek için Sp_GetFileNames isimli bir stored procedure yazın. use CV_EKLE go CREATE PROCEDURE Sp_GetFileNames AS SELECT TOP 1 AdSoyad FROM CV
Sp_GetFileNames prosedürünü modify modda açın ve içeriğini aşağıdaki şekilde düzenleyin. USE [CV_EKLE] GO /****** Object: StoredProcedure [dbo].[sp_getfile] Script Date: 09/27/2013 09:37:53 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: <Author,,Name> -- Create date: <Create Date,,> -- Description: <Description,,> -- ============================================= ( ) ALTER Procedure [dbo].[sp_getfilenames] @fid int As Begin Select FileData,Extension From CV Where ID=@fid End
ID alanının da Gridview1 de görünmesini sağlayın.
Button1 click olayına: byte[] filedata = obj.getfile(int.parse(gridview1.selectedrow.cells[4].text)); Response.ClearContent(); Response.AddHeader("Content-Disposition", "attachment; filename=" + GridView1.SelectedRow.Cells[4].Text); BinaryWriter bw = new BinaryWriter(Response.OutputStream); bw.write(filedata); bw.close(); Response.ContentType = ReturnExtension(obj.Ext); Response.End();
Dersin web sayfasında bulunan ReturnExtension isimli dosyanın içerisinde bulunanları dosyaoku sayfasına ekleyin. ÇALIŞTIRIP GÖZLEMLEYİN.
HATA KONTROLLERİNİ YAPIN DosyaOku sayfasında kullanıcı seçim yapmadan butonu tıklarsa uyarı mesajı verin.
SORULARINIZ 24