Veri Web Denetimlerinde İkili Verileri Görüntüleme (C#)

tarafından Scott Mitchell

PDF’yi İndir

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 göz atacağız.

Giriş

Önceki öğreticide, ikili verileri 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. Yani, 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.

Ancak verileri veri modeliyle ilişkilendirmeye geçmeden önce ikili verilerin son kullanıcıya nasıl sağlanıyor bölümüne 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 isteriz; 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. Sonraki öğreticide, karşıya yüklenen bir dosyayı veritabanıyla ilişkilendirmeye dikkat edeceğiz.

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 ayrıntılı, 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 yüksekliğindedir 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, bu üst bilgideki OLE Nesnesi veri türü kullanılarak depolanır. Şimdilik, resmi görüntülemek için bu düşük kaliteli görüntülerden üst bilgileri nasıl çıkaracağımızı göreceğiz. Gelecek öğreticide, bir kategori Picture sütununu güncelleştirmek için bir arabirim oluşturacak ve OLE üst bilgilerini kullanan bu bit eşlem görüntülerini gereksiz OLE üst bilgileri olmadan eşdeğer JPG 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ışında her kategori 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şlendiğine ilişkin bir 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ütununun değerini olarak NULLbırakınBrochurePath.

Kategoriler Tablosunun Broşür Yolu Sütunu için Değerleri El ile Girin

Şekil 1: Tablo BrochurePath Sütunu değerlerini Categories el ile girin (tam boyutlu görüntüyü görüntülemek için tıklayın)

Tablo için sağlanan değerlerle, her kategoriyi BrochurePathCategories listeleyen bir GridView oluşturmaya ve kategori broşürü indirme bağlantısını 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ç Kutusundan bir GridView'ı klasördeki sayfanın BinaryData Tasarım Aracı DisplayOrDownloadData.aspx sürükleyerek başlayın. GridView'un akıllı etiketi aracılığıyla GridView'u IDCategories olarak ve olarak ayarlayın, bunu yeni bir veri kaynağına bağlamayı seçin. Özellikle, nesnesinin yöntemini kullanarak verileri alan adlı CategoriesDataSource bir ObjectDataSource'a CategoriesBLLGetCategories() bağlayın.

CategoriesDataSource Adlı Yeni Bir ObjectDataSource Oluşturma

Şekil 2: Adlı CategoriesDataSource Yeni Bir ObjectDataSource Oluşturma (Tam boyutlu görüntüyü görüntülemek için tıklayın)

ObjectDataSource'ı CategoriesBLL Sınıfını Kullanacak Şekilde Yapılandırma

Ş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)

GetCategories() Yöntemini Kullanarak Kategori Listesini Alma

Ş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, , CategoryName, Description, NumberOfProductsveDataColumnBrochurePaths için CategoryIDGridView'a Categories otomatik olarak bir BoundField ekler. Yöntem sorgusu bu bilgileri almadığından BoundField'i GetCategories() kaldırınNumberOfProducts. Ayrıca BoundField'i CategoryID kaldırın ve ve BrochurePath BoundFields HeaderText özelliklerini sırasıyla Category ve Broşür olarak yeniden adlandırınCategoryName. 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ı tarayıcı üzerinden görüntüleyin (bkz. Şekil 5). Sekiz kategorinin her biri listelenir. Değerleri olan BrochurePath yedi kategori, BrochurePath ilgili BoundField içinde görüntülenen değere sahiptir. değeri olan NULLBrochurePathdeniz ürünleri boş bir hücre görüntüler.

Her Kategorinin Adı, Açıklaması ve Broşür Yolu Değeri Listelenir

Şekil 5: Her Kategorinin Adı, Açıklaması ve BrochurePath Değeri Listelenir (Tam boyutlu resmi görüntülemek için tıklayın)

Sütunun metnini BrochurePath görüntülemek yerine broşüre bir bağlantı oluşturmak istiyoruz. Bunu yapmak için BoundField'i BrochurePath kaldırın ve bir HyperLinkField ile değiştirin. Yeni HyperLinkField özelliğini HeaderText Broşür, Text özelliğini Broşürü Görüntüle ve DataNavigateUrlFields özelliğini olarak BrochurePathayarlayın.

BrochurePath için HyperLinkField ekleme

Şekil 6: için HyperLinkField ekleme BrochurePath

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.

Kategori Broşürü, Broşürü Görüntüle Bağlantısına Tıklanarak Görüntülenebilir

Şekil 7: Broşürü Görüntüle Bağlantısına Tıklayarak Kategori Broşürü Görüntülenebilir (Tam boyutlu resmi görüntülemek için tıklayın)

Kategori Broşürü PDF'si Görüntüleniyor

Ş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 Olmadan Kategoriler için Broşür Metnini Görüntüle'yi Gizleme

Şekil 7'de gösterildiği gibi, BrochurePath HyperLinkField için değer olmayanNULL bir değer olup olmadığına bakılmaksızın, tüm kayıtlar için BrochurePathözellik değerini ( Broşürü Görüntüle ) görüntülerText. Tabii ki ise BrochurePathNULL, deniz ürünleri kategorisinde olduğu gibi bağlantı yalnızca metin olarak görüntülenir (Şekil 7'ye bakın). Broşürü Görüntüle metnini görüntülemek yerine, değer içermeyen BrochurePath bu kategorilerin Broşür Yok gibi alternatif metinler görüntülemesi iyi olabilir.

Bu davranışı sağlamak için, içeriği değere göre BrochurePath uygun çıkışı yayan bir sayfa yöntemi çağrısıyla oluşturulan 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'i TemplateField'e dönüştürün.

HyperLinkField'i TemplateField'e dönüştürme

Şekil 9: HyperLinkField'i TemplateField'e Dönüştürme

Bu, özelliği değere bağlı BrochurePath bir HyperLink Web denetimi NavigateUrl içeren bir ItemTemplate TemplateField oluşturur. Bu işaretlemeyi, değerini BrochurePathgeçirerek yöntemine GenerateBrochureLinkyapılan bir çağrıyla değiştirin:

<asp:TemplateField HeaderText="Brochure">
    <ItemTemplate>
        <%# GenerateBrochureLink(Eval("BrochurePath")) %>
    </ItemTemplate>
</asp:TemplateField>

Ardından, ASP.NET sayfasının arka planda kod sınıfında bir string döndüren ve giriş parametresi olarak kabul eden adlı GenerateBrochureLink bir object yöntem oluşturunprotected.

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 bu durumda kategoride broşür bulunmadığını belirten bir ileti döndürür. Aksi takdirde, bir BrochurePath değer varsa, köprüde görüntülenir. Değer varsa BrochurePathyöntemineResolveUrl(url) geçirildiğini unutmayın. Bu yöntem, karakteri uygun sanal yol ile değiştirerek ~ geçirilen URL'yi çözümler. Örneğin, uygulamanın kökü konumundaysa /Tutorial55ResolveUrl("~/Brochures/Meats.pdf") döndürür/Tutorial55/Brochures/Meat.pdf.

Şekil 10'da bu değişiklikler uygulandıktan sonra sayfa gösterilir. Deniz Ürünleri kategorisi BrochurePath alanında artık Broşür Yok metninin görüntülendiğini unutmayın.

Broşür Içermeyen Kategoriler için Kullanılabilir Broşür Yok Metni Görüntüleniyor

Şekil 10: BroşürSüz Kategoriler için Kullanılabilir Broşür Yok Metni Görüntüleniyor (Tam boyutlu resmi görüntülemek için tıklayın)

3. Adım: Kategori Resmi 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ğlar.

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ı DisplayCategoryPicture.aspxklasöre BinaryData yeni bir ASP.NET sayfası ekleyin. Bunu yaparken, Ana sayfa seç onay kutusunu işaretsiz bırakın. Bu sayfa querystring içinde 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şaretlemesini <%@ Page %> kaldırın. Yani, DisplayCategoryPicture.aspx bildirim temelli işaretleme tek bir satırdan oluşmalıdır:

<%@ Page Language="C#" AutoEventWireup="true" 
    CodeFile="DisplayCategoryPicture.aspx.cs" 
    Inherits="BinaryData_DisplayCategoryPicture" %>

yönergesinde özniteliğini MasterPageFile<%@ Page %> 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 querystring değerini adlı categoryIDbir değişkene okuyarak CategoryID 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 çağrılmadan önce sütun değerinin Picture OLE üst bilgisinin kaldırılması gerekir. Bu, sütundakinden Picture tam olarak 78 karakter küçük olacak adlı strippedImageData bir byte dizi oluşturularak gerçekleştirilir. Array.Copy yöntemi, 78 konumundan category.Picture başlayarak verilerini konumuna kopyalamak için strippedImageDatakullanı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 Tablonun Picture sütunu 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ü çıkarabileceğinden görüntüyü doğru görüntülemeye devam eder. Ancak, mümkün olduğunda MIME türünü eklemek akıllıca olacaktır. MIME medya türlerinin tam listesi için İnternet Atanan Numaralar Yetkilisi web sitesine bakın.

Bu sayfa oluşturulduktan sonra, belirli bir kategorinin resmi ziyaret DisplayCategoryPicture.aspx?CategoryID=categoryIDedilerek görüntülenebilir. Şekil 11'de, içinden görüntülenebilen DisplayCategoryPicture.aspx?CategoryID=1İçecek kategorisinin resmi gösterilir.

İçecek kategorisinin resmi görüntüleniyor

Şekil 11: İçecek Kategorisi Resmi Görüntüleniyor (Tam boyutlu görüntüyü görüntülemek için tıklayın)

'System.Byte[]' türüne 'System.DBNull' türünde nesne ataması yapılamıyor yazan bir özel durumla karşı DisplayCategoryPicture.aspx?CategoryID=categoryIDkarşıyaysanız, buna neden olabilecek iki şey vardır. İlk olarak, Categories tablonun Picture sütunu değerlere izin NULL verir. DisplayCategoryPicture.aspx Ancak sayfada değer olmayanNULL bir değer olduğu varsayılır. Picture değerine sahipse NULL özelliğine CategoriesDataTable doğrudan erişilemez. Sütun için Picture değerlere izin NULL vermek istiyorsanız aşağıdaki koşulu eklemek istersiniz:

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, klasörde bu kategoriler için resim olmadan görüntülemek istediğiniz adlı NoPictureAvailable.gifImages bir resim dosyası olduğunu varsayar.

Bu özel durum, s GetCategoryWithBinaryDataByCategoryID yönteminin CategoriesTableAdapterSELECT deyimi ana sorgunun sütun listesine geri döndürülürse de kaynaklanabilir. Bu durum geçici SQL deyimleri kullanıyorsanız ve TableAdapter ana sorgusu için sihirbazı yeniden çalıştırdığınızda gerçekleşebilir. Yöntemin SELECT deyiminin GetCategoryWithBinaryDataByCategoryID hala sütununu içerdiğinden Picture emin olun.

Not

DisplayCategoryPicture.aspx her ziyaret edilişinde veritabanına erişilir ve belirtilen kategorinin resim verileri döndürülür. Ancak, kullanıcı en son görüntülediğinden bu yana 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 aldığında tarih ve saati sağlayan bir If-Modified-Since HTTP üst bilgisi gönderir. İçerik bu belirtilen tarihten sonra değişmediyse, web sunucusu Değiştirilmedi durum koduyla (304) yanıt verebilir ve istenen kaynağın içeriğini geri göndermeyi unutabilir. Kısacası, bu teknik, istemcinin son erişiminden bu yana değiştirilmemişse, web sunucusunu bir kaynak için içeriği geri göndermek zorunda olmaktan kurtarır.

Ancak bu davranışı uygulamak için, sütunun en son ne zaman güncelleştirildiğini Picture yakalamak için tabloya Categories bir PictureLastModified sütun ve üst bilgiyi denetlemek için If-Modified-Since kod eklemeniz gerekir. Üst bilgi ve koşullu GET iş akışı hakkında If-Modified-Since daha fazla bilgi için bkz. RSS Korsanları 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, Resim Web denetimi veya öğesine işaret eden DisplayCategoryPicture.aspx?CategoryID=categoryIDbir HTML <img> öğesi kullanarak görüntüleyebiliriz. URL'si veritabanı verileri tarafından belirlenen görüntüler, ImageField kullanılarak GridView veya DetailsView'da görüntülenebilir. ImageField, HyperLinkField s ve DataImageUrlFormatString özellikleri gibi çalışan ve DataNavigateUrlFormatString özelliklerini içerirDataImageUrlField.DataNavigateUrlFields

Her kategorinin Categories resmini göstermek için bir ImageField ekleyerek GridView'ı DisplayOrDownloadData.aspx genişletelim. ImageField'i ekleyip ve DataImageUrlFormatString özelliklerini CategoryID sırasıyla ve DisplayCategoryPicture.aspx?CategoryID={0}olarak ayarlamanız DataImageUrlField yeterlidir. Bu, özniteliği DisplayCategoryPicture.aspx?CategoryID={0}başvuruda bulunan src bir öğeyi işleyen bir <img> GridView sütunu oluşturur ve burada {0} GridView satır CategoryID değeriyle değiştirilir.

GridView'a ImageField ekleme

Ş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 nasıl bir resim içerdiğini unutmayın.

Kategorinin Resmi Her Satır İçin Görüntülenir

Ş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 ardından bu sayfayı her kategorinin resmini GridView'da görüntülemek için kullandık.

İ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, karşıya yüklenen bir dosyayı ilgili veritabanı kaydıyla nasıl ilişkilendirebileceğimizi inceleyeceğiz. Bundan sonraki öğreticide mevcut ikili verilerin nasıl güncelleştirildiğini ve ilişkili kaydı kaldırıldığında ikili verilerin nasıl silindiğ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ışmaktadır. Son kitabı Sams Teach Yourself ASP.NET 24 Saat içinde 2.0. Adresine adresinden veya adresinden ulaşabileceğiniz http://ScottOnWriting.NETblogu aracılığıyla ulaşabilirsinizmitchell@4GuysFromRolla.com.

Özel Teşekkürler

Bu öğretici serisi birçok yararlı gözden geçiren tarafından gözden geçirildi. Bu öğreticinin baş gözden geçirenleri Teresa Murphy ve Dave Gardner'dı. Yaklaşan MSDN makalelerimi gözden geçirmek istiyor musunuz? Öyleyse, bana bir satır mitchell@4GuysFromRolla.combırakın.