Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
tarafından Scott Mitchell
Bu öğreticide, bir görüntü dosyasının görüntülenmesi ve PDF dosyası için 'İndir' bağlantısının sağlanması dahil olmak üzere bir Web sayfasında ikili veri sunma seçeneklerine bakacağız.
Giriş
Önceki öğreticide, ikili verileri bir uygulamanın temel veri modeliyle ilişkilendirmeye yönelik iki tekniği inceledik ve dosyaları tarayıcıdan web sunucusunun dosya sistemine yüklemek için FileUpload denetimini kullandık. Karşıya yüklenen ikili verileri veri modeliyle nasıl ilişkilendirebileceğimizi henüz görmedik. Başka bir ifadeyle, bir dosya karşıya yüklendikten ve dosya sistemine kaydedildikten sonra, dosyanın yolu uygun veritabanı kaydında depolanmalıdır. Veriler doğrudan veritabanında depolanıyorsa, karşıya yüklenen ikili verilerin dosya sistemine kaydedilmesi gerekmez, ancak veritabanına eklenmelidir.
Bununla birlikte, verileri veri modeliyle ilişkilendirmeye bakmadan önce ikili verilerin son kullanıcıya nasıl sağlıyacağımıza bakalım. Metin verilerini sunmak yeterince basittir, ancak ikili veriler nasıl sunulmalı? Bu, elbette ikili verilerin türüne bağlıdır. Görüntüler için büyük olasılıkla görüntüyü görüntülemek istiyoruz; PDF'ler, Microsoft Word belgeleri, ZIP dosyaları ve diğer ikili veri türleri için bir İndirme bağlantısı sağlamak büyük olasılıkla daha uygundur.
Bu öğreticide, GridView ve DetailsView gibi veri Web denetimlerini kullanarak ikili verilerin ilişkili metin verileriyle birlikte nasıl sunılacağına bakacağız. Bir sonraki eğitimde, karşıya yüklenen bir dosyayı veritabanıyla ilişkilendirmeye odaklanacağız.
1. Adım: Değer SağlamaBrochurePath
Picture Tablodaki Categories sütun, çeşitli kategori görüntüleri için ikili verileri zaten içeriyor. Özellikle, her kaydın Picture sütunu, kumlu, düşük kaliteli, 16 renkli bit eşlem görüntüsünün ikili içeriğini tutar. Her kategori resmi 172 piksel genişliğinde ve 120 piksel uzunluğundadır ve kabaca 11 KB tüketir. Dahası, sütundaki Picture ikili içerik, görüntüyü görüntülemeden önce çıkarılması gereken 78 baytlık bir OLE üst bilgisi içerir. Northwind veritabanının kökleri Microsoft Access'te olduğundan bu üst bilgi bilgileri mevcuttur. Access'te ikili veriler, OLE Nesnesi veri türü kullanılarak depolanır, bu da bu üst bilgiyi ekler. Şimdilik, resmi görüntülemek için bu düşük kaliteli görüntülerdeki üst bilgileri nasıl çıkaracağımızı göreceğiz. Gelecekteki bir öğreticide, bir kategori Picture sütununu güncellemek için bir arabirim oluşturup, OLE üst bilgilerini içeren bu bit eşlem görüntülerini, gereksiz OLE üst bilgileri olmadan eşdeğer JPEG görüntüleriyle değiştireceğiz.
Önceki öğreticide FileUpload denetiminin nasıl kullanılacağını gördük. Bu nedenle, web sunucusunun dosya sistemine broşür dosyaları ekleyebilirsiniz. Ancak bunu yapmak tablodaki BrochurePathCategories sütunu güncelleştirmez. Sonraki öğreticide bunu nasıl gerçekleştirebileceğimizi göreceğiz, ancak şimdilik bu sütun için değerleri el ile sağlamamız gerekiyor.
Bu öğreticinin indirmesinde, klasörde Deniz Ürünleri dışındaki kategorilerin her biri için birer tane olacak şekilde yedi PDF broşür dosyası ~/Brochures bulacaksınız. Tüm kayıtların ilişkili ikili verilere sahip olmadığı senaryoların nasıl işleneceğini göstermek için Deniz Ürünleri broşürü eklemeyi bilerek atladım. Tabloyu bu değerlerle güncelleştirmek Categories için Sunucu Gezgini'nden düğüme Categories sağ tıklayın ve Tablo Verilerini Göster'i seçin. Ardından, Şekil 1'de gösterildiği gibi broşür içeren her kategori için broşür dosyalarının sanal yollarını girin. Deniz Ürünleri kategorisi için broşür olmadığından sütun değerini olarak BrochurePathbırakınNULL.
Şekil 1: Tablo Categories Sütunu değerlerini BrochurePath el ile girin (Tam boyutlu görüntüyü görüntülemek için tıklayın)
2. Adım: GridView'da Broşürler için İndirme Bağlantısı Sağlama
BrochurePath Tablosu için sağlanan değerlerle, her kategoriyi listeleyen ve kategori broşürünü indirmek için bir bağlantı içeren bir GridView oluşturmaya hazırız. 4. Adımda bu GridView'ı, kategorinin görüntüsünü de görüntüleyecek şekilde genişleteceğiz.
Araç Kutusu'ndan BinaryData klasöründeki DisplayOrDownloadData.aspx sayfasının Tasarımcısına bir GridView sürükleyerek başlayın. GridView'un akıllı etiketi aracılığıyla GridView'u IDCategories olarak ayarlayın ve yeni bir veri kaynağına bağlamayı seçin. Özellikle, verileri CategoriesBLL nesnesinin GetCategories() yöntemi ile alan bir CategoriesDataSource adlı ObjectDataSource'a bağlayın.
Şekil 2: Adlı CategoriesDataSource Yeni Bir ObjectDataSource Oluşturma (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Şekil 3: ObjectDataSource'ı Sınıfı Kullanacak CategoriesBLL Şekilde Yapılandırma (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Şekil 4: Yöntemi Kullanarak GetCategories() Kategori Listesini Alma (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Veri Kaynağını Yapılandırma sihirbazını tamamladıktan sonra Visual Studio, , Categories, CategoryID, CategoryNameve DescriptionNumberOfProducts s için GridView'a BrochurePathDataColumnotomatik olarak bir BoundField ekler. Yöntemin sorgusu bu bilgileri almadığı için, devam edin ve NumberOfProducts BoundField'i kaldırınGetCategories(). Ayrıca BoundField CategoryID'i kaldırın ve CategoryName ile BrochurePath BoundFields HeaderText özelliklerini sırasıyla Kategori ve Broşür olarak yeniden adlandırın. Bu değişiklikleri yaptıktan sonra GridView ve ObjectDataSource bildirim temelli işaretlemeniz aşağıdaki gibi görünmelidir:
<asp:GridView ID="Categories" runat="server"
AutoGenerateColumns="False" DataKeyNames="CategoryID"
DataSourceID="CategoriesDataSource" EnableViewState="False">
<Columns>
<asp:BoundField DataField="CategoryName" HeaderText="Category"
SortExpression="CategoryName" />
<asp:BoundField DataField="Description" HeaderText="Description"
SortExpression="Description" />
<asp:BoundField DataField="BrochurePath" HeaderText="Brochure"
SortExpression="BrochurePath" />
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="CategoriesDataSource" runat="server"
OldValuesParameterFormatString="original_{0}"
SelectMethod="GetCategories" TypeName="CategoriesBLL">
</asp:ObjectDataSource>
Bu sayfayı bir tarayıcı üzerinden görüntüleyin (bkz. Şekil 5). Sekiz kategorinin her biri listelenir.
BrochurePath değerlerini içeren yedi kategori, BrochurePath değeri olarak ilgili BoundField'da görüntülenir.
BrochurePath değeri için NULL değerine sahip deniz ürünleri, boş bir hücre gösterir.
Şekil 5: Her Kategorinin Adı, Açıklaması ve BrochurePath Değeri Listelenir (Tam boyutlu görüntüyü görüntülemek için tıklayın)
BrochurePath sütununun metnini görüntülemek yerine broşüre bir bağlantı vermek istiyoruz. Bunu yapmak için BoundField'i BrochurePath kaldırın ve bir HyperLinkField ile değiştirin. Yeni HyperLinkField’in HeaderText özelliğini Broşür, Text özelliğini Broşürü Görüntüle ve DataNavigateUrlFields özelliğini BrochurePath olarak ayarlayın.
Şekil 6: BrochurePath için bir HyperLinkField ekleyin
Bu, Şekil 7'de gösterildiği gibi GridView'a bir bağlantı sütunu ekler. Broşürü Görüntüle bağlantısına tıklandığında PDF okuyucunun yüklü olup olmadığına ve tarayıcı ayarlarına bağlı olarak pdf doğrudan tarayıcıda görüntülenir veya kullanıcıdan dosyayı indirmesi istenir.
Şekil 7: Bir Kategori Broşürü, Broşürü Görüntüle Bağlantısına Tıklanarak Görüntülenebilir (Tam boyutlu resmi görüntülemek için tıklayın)
Şekil 8: Kategori Broşürü PDF'si Görüntüleniyor (Tam boyutlu resmi görüntülemek için tıklayın)
Broşürü Olmayan Kategoriler için Broşürü Görüntüleme Metnini Gizleme
Şekil 7'de gösterildiği gibi, HyperLinkField tüm kayıtlar için NULL özelliğinin değerini (Broşürü Görüntüle) gösterir ve bu, BrochurePath için bir değer bulunup bulunmamasına bakılmaksızın gerçekleşir. Tabii ki ise BrochurePathNULL, deniz ürünleri kategorisinde olduğu gibi bağlantı yalnızca metin olarak görüntülenir (Şekil 7'ye geri bakın). Broşürü Görüntüle yerine, bir BrochurePath değeri içermeyen bu kategoriler için Broşür Yok gibi alternatif bir metin görüntülemek hoş olabilir.
Bu davranışı sağlamak için, içeriği BrochurePath değerine göre uygun çıktıyı üreten bir sayfa yöntemi çağrısı ile oluşturulan bir TemplateField kullanmamız gerekir. Bu biçimlendirme tekniğini ilk olarak GridView Denetimi öğreticisindeki TemplateFields Kullanma öğreticisinde keşfettik.
HyperLinkField'i seçip BrochurePath Sütunları Düzenle iletişim kutusundaki Bu alanı TemplateField'e dönüştür bağlantısına tıklayarak HyperLinkField'ı TemplateField'a dönüştürün.
Şekil 9: HyperLinkField'i TemplateField'a Dönüştürme
Bu, BrochurePath değerine bağlı NavigateUrl özelliğine sahip bir HyperLink Web denetimi içeren ItemTemplate bir TemplateField oluşturur. Bu işaretlemeyi, BrochurePath değerini geçirerek GenerateBrochureLink yöntemine yapılan bir çağrıyla değiştirin.
<asp:TemplateField HeaderText="Brochure">
<ItemTemplate>
<%# GenerateBrochureLink(Eval("BrochurePath")) %>
</ItemTemplate>
</asp:TemplateField>
Ardından, bir protected döndüren ve bir object giriş parametresi olarak kabul eden GenerateBrochureLink adlı bir yöntem ASP.NET sayfasının kod arka plan sınıfında oluşturun.
protected string GenerateBrochureLink(object BrochurePath)
{
if (Convert.IsDBNull(BrochurePath))
return "No Brochure Available";
else
return string.Format(@"<a href="{0}">View Brochure</a>",
ResolveUrl(BrochurePath.ToString()));
}
Bu yöntem, geçirilen object değerin bir veritabanı NULL olup olmadığını belirler ve varsa kategoride broşür bulunmadığını belirten bir ileti döndürür. Aksi takdirde, bir BrochurePath değer varsa, bir hiperbağda görüntülenir.
BrochurePath değeri mevcutsa, ResolveUrl(url) yöntemine geçirilir. Bu yöntem, geçen url'yi çözümlerken ~ karakterini uygun sanal yol ile değiştirir. Örneğin, uygulamanın kökü /Tutorial55 konumundaysa, ResolveUrl("~/Brochures/Meats.pdf")/Tutorial55/Brochures/Meat.pdf döndürecektir.
Şekil 10'da bu değişiklikler uygulandıktan sonra sayfa gösterilmektedir. Deniz Ürünleri kategorisi BrochurePath alanında artık Broşür Yok metninin görüntülendiğini unutmayın.
Şekil 10: Broşürü Olmayan Kategoriler için "Broşür Yok" Metni Görüntüleniyor (Tam boyutlu resmi görüntülemek için tıklayın)
3. Adım: KategoriNin Resmini Görüntülemek için Web Sayfası Ekleme
Kullanıcı bir ASP.NET sayfasını ziyaret ettiğinde, ASP.NET sayfasının HTML'sini alır. Alınan HTML yalnızca metindir ve herhangi bir ikili veri içermez. Görüntüler, ses dosyaları, Macromedia Flash uygulamaları, ekli Windows Medya Oynatıcı videoları gibi ek ikili veriler web sunucusunda ayrı kaynaklar olarak bulunur. HTML bu dosyalara başvurular içerir, ancak dosyaların gerçek içeriğini içermez.
Örneğin, HTML'de <img> öğesi bir resme başvurmak için kullanılır ve src özniteliği görüntü dosyasına şöyle işaret ediyor:
<img src="MyPicture.jpg" ... />
Bir tarayıcı bu HTML'yi aldığında, görüntü dosyasının ikili içeriğini almak için web sunucusuna başka bir istekte bulunur ve bu istek daha sonra tarayıcıda görüntülenir. Aynı kavram tüm ikili veriler için de geçerlidir. 2. Adımda, broşür sayfanın HTML işaretlemesinin bir parçası olarak tarayıcıya gönderilmedi. Bunun yerine, işlenen HTML tıklandığında tarayıcının doğrudan PDF belgesini istemesine neden olan köprüler sağladı.
Kullanıcıların veritabanında bulunan ikili verileri görüntülemesine veya indirmesine izin vermek için verileri döndüren ayrı bir web sayfası oluşturmamız gerekir. Uygulamamız için, doğrudan veritabanında kategorinin resmi olarak depolanan tek bir ikili veri alanı vardır. Bu nedenle, çağrıldığında belirli bir kategoriye ait görüntü verilerini döndüren bir sayfaya ihtiyacımız vardır.
adlı BinaryDataklasöre DisplayCategoryPicture.aspx yeni bir ASP.NET sayfası ekleyin. Bunu yaparken Ana sayfa seç onay kutusunu işaretsiz bırakın. Bu sayfa sorgu dizesinde bir CategoryID değer bekler ve bu kategorinin Picture sütununun ikili verilerini döndürür. Bu sayfa ikili veri döndürdüğünden ve başka bir şey döndürmediğinden, HTML bölümünde herhangi bir işaretlemeye gerek yoktur. Bu nedenle, sol alt köşedeki Kaynak sekmesine tıklayın ve yönergesi dışındaki tüm sayfa işaretlemelerini <%@ Page %> kaldırın. Yani, DisplayCategoryPicture.aspx deklaratif işaretleme tek bir satırdan oluşmalıdır.
<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="DisplayCategoryPicture.aspx.cs"
Inherits="BinaryData_DisplayCategoryPicture" %>
Yönergesinde <%@ Page %>MasterPageFile özniteliğini görürseniz kaldırın.
Sayfanın arka planda kod sınıfında, olay işleyicisine Page_Load aşağıdaki kodu ekleyin:
protected void Page_Load(object sender, EventArgs e)
{
int categoryID = Convert.ToInt32(Request.QueryString["CategoryID"]);
// Get information about the specified category
CategoriesBLL categoryAPI = new CategoriesBLL();
Northwind.CategoriesDataTable categories =
categoryAPI.GetCategoryWithBinaryDataByCategoryID(categoryID);
Northwind.CategoriesRow category = categories[0];
// Output HTTP headers providing information about the binary data
Response.ContentType = "image/bmp";
// Output the binary data
// But first we need to strip out the OLE header
const int OleHeaderLength = 78;
int strippedImageLength = category.Picture.Length - OleHeaderLength;
byte[] strippedImageData = new byte[strippedImageLength];
Array.Copy(category.Picture, OleHeaderLength,
strippedImageData, 0, strippedImageLength);
Response.BinaryWrite(strippedImageData);
}
Bu kod, CategoryID sorgu dizesi değerini categoryID adlı bir değişkene okuyarak başlar. Ardından, resim verileri sınıfın CategoriesBLLGetCategoryWithBinaryDataByCategoryID(categoryID) yöntemine yapılan bir çağrı aracılığıyla alınır. Bu veriler yöntemi kullanılarak Response.BinaryWrite(data) istemciye döndürülür, ancak bu çağrılmadan önce sütun değerinin OLE üst bilgisinin Picture kaldırılması gerekir. Bu, Picture sütunundakinden tam olarak 78 karakter daha az karakter tutacak olan strippedImageData adlı bir byte dizisi oluşturarak gerçekleştirilir.
Array.Copy yöntemi, 78 konumundan category.Picture başlayarak verileri strippedImageData öğesine kopyalamak için kullanılır.
özelliği, Response.ContentType tarayıcının nasıl işlendiğini bilmesi için döndürülen içeriğin MIME türünü belirtir.
Categories Tablo Picture sütunu bir bit eşlem görüntüsü olduğundan bit eşlem MIME türü burada kullanılır (görüntü/bmp). MIME türünü atlarsanız, çoğu tarayıcı görüntü dosyasının ikili verilerinin içeriğine göre tür çıkarabildiğinden görüntüyü doğru görüntülemeye devam eder. Ancak, mümkün olduğunda MIME türünü dahil etmek akıllıca olur. MIME medya türlerinin tam listesi için İnternet Atanmış Numaralar Yetkilisi web sitesine bakın.
Bu sayfa oluşturulduktan sonra, belirli bir kategorinin resmi DisplayCategoryPicture.aspx?CategoryID=categoryID ziyaret edilerek görüntülenebilir. Şekil 11'de DisplayCategoryPicture.aspx?CategoryID=1 uygulamasından görüntülenebilen İçecekler kategorisinin resmi gösterilmektedir.
Şekil 11: İçecek Kategorisi Resmi Görüntüleniyor (Tam boyutlu görüntüyü görüntülemek için tıklayın)
DisplayCategoryPicture.aspx?CategoryID=categoryID ziyaret ederken 'System.DBNull' türündeki nesneyi 'System.Byte[]' türüne dönüştürmenin mümkün olmadığını belirten bir özel durum alırsanız, bunun iki olası nedeni vardır. İlk olarak, Categories tablo Picture sütunu NULL değerlere izin verir. Sayfa DisplayCategoryPicture.aspx, ancak NULL olmayan bir değerin mevcut olduğunu varsayar.
NULL değerine sahipse CategoriesDataTable nesnesinin Picture özelliğine doğrudan erişilemez. Eğer NULL değerlerine Picture sütunu için izin vermeyi gerçekten istiyorsanız, şu koşulu eklemelisiniz:
if (category.IsPictureNull())
{
// Display some "No Image Available" picture
Response.Redirect("~/Images/NoPictureAvailable.gif");
}
else
{
// Send back the binary contents of the Picture column
// ... Set ContentType property and write out ...
// ... data via Response.BinaryWrite ...
}
Yukarıdaki kod, bu kategoriler için resim olmadan görüntülemek istediğiniz klasörde adlı NoPictureAvailable.gifImages bir resim dosyası olduğunu varsayar.
Bu özel durum, CategoriesTableAdapter yönteminin GetCategoryWithBinaryDataByCategoryID deyiminin ana sorgunun sütun listesine geri döndürülmesi durumunda da ortaya çıkabilir ki bu, geçici SQL deyimlerini kullanıyorsanız ve TableAdapter'ın ana sorgusu için sihirbazı yeniden çalıştırdıysanız gerçekleşebilir.
GetCategoryWithBinaryDataByCategoryID yöntemi SELECT ifadesinin hala Picture sütununu içerdiğinden emin olun.
Not
DisplayCategoryPicture.aspx her ziyaretinde veritabanına erişilir ve belirtilen kategorinin resim verileri döndürülür. Ancak, kullanıcı en son görüntülediğinden beri kategorinin resmi değişmediyse, bu harcanan çabadır. Neyse ki HTTP koşullu GET'lere izin verir. Koşullu GET ile HTTP isteğinde bulunan istemci, istemcinin bu kaynağı web sunucusundan en son alan tarih ve saati sağlayan bir If-Modified-Since HTTP üst bilgisi gönderir. İçerik bu belirtilen tarihten beri değişmediyse, web sunucusu Değiştirilmedi durum koduyla (304) yanıt verebilir ve istenen kaynağın içeriğini göndermeyebilir. Kısacası bu teknik, istemcinin son eriştiği kaynaktan sonra değiştirilmemişse, web sunucusunun kaynak içeriğini geri göndermesini engeller.
Bir sütunun en son ne zaman güncellendiğini yakalamak için tabloya bir PictureLastModified sütunu eklemek ve başlığı kontrol etmek için kod eklemek gerekir. HTTP üst bilgisini ve koşullu GET iş akışını hakkında daha fazla bilgi için bkz. RSS Hackerları için HTTP Koşullu GET ve ASP.NET Sayfasında HTTP İstekleri Gerçekleştirmeye Daha Ayrıntılı Bakış.
4. Adım: Kategori Resimlerini GridView'da Görüntüleme
Artık belirli bir kategorinin resmini görüntülemek için bir web sayfamız olduğuna göre, bu resmi görüntülemek için Resim Web denetimi veya <img> HTML elementi kullanabiliriz ve DisplayCategoryPicture.aspx?CategoryID=categoryID konumuna işaret edebiliriz. URL'si veritabanı verileri tarafından belirlenen görüntüler, ImageField kullanılarak GridView veya DetailsView içinde görüntülenebilir. ImageField, DataImageUrlField ve DataImageUrlFormatString özelliklerine sahip olup, HyperLinkField'in DataNavigateUrlFields ve DataNavigateUrlFormatString özellikleri gibi çalışır.
Categories içindeki GridView'ı DisplayOrDownloadData.aspx genişletelim ve her kategorinin resmini göstermek için bir ImageField ekleyelim. ImageField'i ekleyip DataImageUrlField ve DataImageUrlFormatString özelliklerini sırasıyla CategoryID ve DisplayCategoryPicture.aspx?CategoryID={0} olarak ayarlamanız yeterlidir. Bu, özniteliği başvuruda <img>bulunan src ve burada DisplayCategoryPicture.aspx?CategoryID={0} GridView satır {0} değeriyle değiştirilen bir öğeyi işleyen bir CategoryID GridView sütunu oluşturur.
Şekil 12: GridView'a ImageField ekleme
ImageField'i ekledikten sonra GridView'unuzun bildirim temelli söz dizimi aşağıdaki gibi görünmelidir:
<asp:GridView ID="Categories" runat="server" AutoGenerateColumns="False"
DataKeyNames="CategoryID" DataSourceID="CategoriesDataSource"
EnableViewState="False">
<Columns>
<asp:BoundField DataField="CategoryName" HeaderText="Category"
SortExpression="CategoryName" />
<asp:BoundField DataField="Description" HeaderText="Description"
SortExpression="Description" />
<asp:TemplateField HeaderText="Brochure">
<ItemTemplate>
<%# GenerateBrochureLink(Eval("BrochurePath")) %>
</ItemTemplate>
</asp:TemplateField>
<asp:ImageField DataImageUrlField="CategoryID"
DataImageUrlFormatString="DisplayCategoryPicture.aspx?CategoryID={0}">
</asp:ImageField>
</Columns>
</asp:GridView>
Bu sayfayı bir tarayıcı üzerinden görüntülemek için biraz zaman ayırın. Her kaydın artık kategori için bir resim içerdiğine dikkat edin.
Şekil 13: Kategorinin Resmi Her Satır için Görüntülenir (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Özet
Bu öğreticide ikili verilerin nasıl sunıldığını inceledik. Verilerin nasıl sunulduğu, veri türüne bağlıdır. PDF broşür dosyaları için kullanıcıya, tıklandığında kullanıcıyı doğrudan PDF dosyasına götüren bir Broşürü Görüntüle bağlantısı sunduk. Kategori resmi için önce veritabanından ikili verileri alıp döndürmek için bir sayfa oluşturduk ve sonra bu sayfayı kullanarak her kategorinin resmini gridview'da görüntüledik.
İkili verilerin nasıl görüntüleneceğini incelediğimize göre, ikili verilerle veritabanında ekleme, güncelleştirme ve silme işlemlerinin nasıl gerçekleştirildiğini incelemeye hazırız. Sonraki öğreticide yüklenen bir dosyanın ilgili veritabanı kaydıyla nasıl ilişkilendirileceğini inceleyeceğiz. Bundan sonraki öğreticide, mevcut ikili verilerin nasıl güncelleneceğini ve ilişkili kayıt silindiğinde ikili verilerin nasıl silineceğini göreceğiz.
Mutlu Programlama!
Yazar hakkında
Yedi ASP/ASP.NET kitabının yazarı ve 4GuysFromRolla.com kurucusu Scott Mitchell, 1998'den beri Microsoft Web teknolojileriyle çalışmaktadır. Scott bağımsız bir danışman, eğitmen ve yazar olarak çalışır. Son kitabı Sams Teach Yourself ASP.NET 2.0 24 Saatte. Ona adresinden mitchell@4GuysFromRolla.comulaşabilirsiniz.
Özel Teşekkürler
Bu eğitim dizisi birçok değerli inceleyici tarafından gözden geçirildi. Bu eğitimin baş değerlendirenleri Teresa Murphy ve Dave Gardner'dı. Yaklaşan MSDN makalelerimi gözden geçirmek istiyor musunuz? Öyleyse, mitchell@4GuysFromRolla.com'a bir mesaj bırakın.