Visual Studio 2015’de ReportViewer ve RDLC Report Bileşenleri Ekleme

Visual Studio 2015 ile “RDLC raporları” hazırlamak istediğinizde kurulumunuza bağlı olarak “Windows Forms Application” uygulaması geliştirirken, toolbox’da raporlama(reporting) tab’ını göremeyeceksiniz. Bunun sebebi “SQL Server Data Tools” yüklemesinin yapılmamış olmasıdır. Visual Studio 2015 ‘deTools” => “Extension & Updates”  seçeneğinin altında “Update” tab’ında “SQL Server Data Tools” yüklemesini göreceksiniz. Buradan gerekli güncellemeyi yapabilirsiniz ama bu güncelleme sonucunda da eğer “Windows Forms Application” uygulaması geliştirirken, toolbox’da raporlama(reporting) tab’ını göremiyorsanız; farklı bir yöntem daha mevcut.

Öncelikle “Denetim Masası” => “Program Ekle/Kaldır” kısmına gidiniz. Gelen listeden “Visual Studio 2015” ‘i sağ tıklayarak “Değiştir” seçeneği ile kuruluma “SQL Server Data Tools”  özelliğini seçerek “Update” işlemini yapınız. Yaklaşık 118 MB ‘lık bir yükleme sonucu kurulum tamamlandıktan sonra ilgili “toolbox” ve “Item Ekleme” kısmında ilgili nesneler görünecek ve kullanılabilecektir. İlgili adımları aşağıdaki görsellerden de takip ederek yapabilirsiniz.

reporting-in-visual-studio-1

 

kmb-udemy-reklam

Reklamlar

SQL Server Data Tools for Visual Studio 2012

Visual Studio 2012 için SQL Server Data Tools’un yeni bir güncellemesi yayınlandı. Visual Studio 2012 için bu güncellemenizi yapmanızı öneririm. “.sql” uzantılı dosyalarla visual studio içinden çalışmamızı sağlayan önemli bir araçtır.

SQL Server Data Tools for Visual Studio 2012.

WIN – DataSet Operations – Creating Search Form With Dataset

Visual Studio ile Rapid Development hayatımız çok değişmiştir. Visual diller ile bize hız,  esneklik ve pratikliği bir arada sunar. Bu makalemiz ile bu konu üzerine bir başlangıç yaparak hızlı ve pratik bir şekilde uygulama geliştirme konusunda bir makale dizisi oluşturacağım. Tabii ki makalelerimizin baş rol oyuncusu “DataSet” nesnesi olacaktır. Sözü fazla uzatmadan yapacağımız projelerin ne olduğuna kısaca değinmek istiyorum. Bu makale dizisi boyunca “Northwind” veritabanından yararlanarak bazı ekranlar oluşturacağız.. Bu sayede “DataSet” ile yapabileceğiniz işlemleri ve kolaylıklarına değinmiş olacağız..

  • Arama formu.. (Search Form)
  • Birden çok’a filitreleme formu.. (One To Many Filter)
  • Hızlı gözat listesi içeren form.. (Lookup List)

Creating Search Form With Dataset

Evet ilk makale konumuz olan Arama formu oluşturmayı bir de dataset nesnesinden dinlemeye başlayalım.. 🙂

Örnek bir proje oluşturuyoruz.. Ben projenin ismine “CreatingSearchFormWithDataSet” verdim. Projemize 1 adet “Form” ekliyoruz.. Ardından visual studio “Data” menüsünden “Show Data Sources” bölmesinin açılmasını sağlıyoruz..

image

Bu bölmeden “Add New Data Source…” link’ine tıklıyoruz.. Ya da bu bölmedeki sol üst köşedeki veritabanı simgesine tıklayabilirsiniz..

image

Ardından aşağıdaki adımları takip ederek DataSet nesnemizi oluşturuyoruz..

image

image

image

image

image

image

Dataset nesnemiz visual studio tarafından seçtiğimiz tablo ve kolonlardan oluşacak şekilde oluşturuluyor..

image

CustomerDataSet” nesnemizin “Customers” tablosunu seçerek “Form1” üzerine sürükleyerek bırakıyoruz.. Visual Studio bizim için şunları yapıyor;

image

  • 1 adet “CustomerDataSet” nesnesi ekliyor. Bu Data Sources bölümünde oluşturduğumuz Data set nesnesinin bir örneği(instance) olmaktadır.
  • 1 adet “Binding Source” nesnesi ekliyor. Bu nesnenin “DataSource” özelliğini “CustomerDataSet” ; “Data Member” özelliğini “Customers” tablosunu işaret edecek şekilde ayarlıyor.
  • 1 adet “Binding Navigator” nesnesi ekliyor. formun üst kısmıdaki navigation ‘ı içeriyor. Bu navigator nesnesinin Data Source özelliğine oluşturulan Binding Source bağlanmıştır.
  • 1 adet “customersTableAdapter” nesnesi ekleniyor. Bu nesne “Sql Adapter” nesnesinin, oluşturduğumuz CustomerDataSet’i içindeki “Customers“ tablosu için özelleştirilmiş halidir.
  • 1 adet “tableAdapterManager” nesnesi ekleniyor. Bu nesne formunuz üzerinde kullandığınız “CustomerDataSet” ile ilişkili tüm adapter nesnelerini içinde barındırarak tüm adapter nesnelerini merkezi bir yerden yönetmemizi sağlar. Örneğin; “customersTableAdapter” bu nesne tarafından otomatik olarak tanımlanmıştır ve yönetilir. Eğer dataset nesnemize başka bir tablo daha eklersek, o tabloya ait otomatik olarak oluşturulacak olan “[Tabloİsmi]TableAdapter” nesnesi gene otomatik olarak bu “tableAdapterManager” nesnesine bağlanacaktır.

image

Bu işlemlerin ardından form üzerinde oluşturulan DataGridView kontrolünü seçiyoruz ve “Properties” bölümünden “Anchor” özelliğini resimdeki gibi ayarlıyoruz. Böylece form boyutu ile oynandığında DataGridView ‘da boyutlanacaktır.

Kod tarafına baktığımızda bizim için bazı otomatik kodlamaların yapıldığını görüyoruz.

 

Code Snippet
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace CreatingSearchFormWithDataSet
{
    public partial class Form1 : Form
    {
        public Form1() {
            InitializeComponent();
        }

        private void customersBindingNavigatorSaveItem_Click(object sender, EventArgs e) {
            this.Validate();
            this.customersBindingSource.EndEdit();
            this.tableAdapterManager.UpdateAll(this.customerDataSet);

        }

        private void Form1_Load(object sender, EventArgs e) {
            // TODO: This line of code loads data into the 'customerDataSet.Customers' table.
            // You can move, or remove it, as needed.
            this.customersTableAdapter.Fill(this.customerDataSet.Customers);

        }
    }
}

Bu kodlar ile form ilk yüklendiğinde “customerTableAdapter” nesnesi ile “CustomersDataSet” içindeki “Customers” tablomuz dolduruluyor. Bir de form’ üzerindeki “Navigator” üzerindeki “Kaydet(Save)” butonuna basıldığında “CustomersDataSet” üzerinde yapılan tüm işlemler kaydediliyor.

Dikkat !!

Sadece “Customers” tablosu değil, tüm tablolardaki değişiklik yapılmış satırlar veritabanına gönderilerek işlemler yapılıyor. Bizim projemizde sadece “Customers” tablomuzu seçtiğimiz için zaten 1 adet tablo bulunmaktadır. Fakat diğer tablolarıda dataset nesnemize eklediysek ve bu tablolarda da “Ekleme(Insert)”, “Güncelleme(Update)”, “Silme(Delete)” işlemleri yaptıysak, bu değişiklikleri yaptığımız satırlar(tüm tablolar değil) adapter nesnesi üzerinden güncelleniyor. İşte burada “AdapterManager” her tablo için özel oluşturulan adapter nesnelerini kullanarak bu işlemleri tek bir noktadan yapıyor.

Uygulamamızı bir çalıştıralım ve neler yapıldığına bakalım.

image

Evet gördüğünüz gibi verilerimiz yüklendir. Navigator üzerinde gördüğünüz işlemler çalışmaktadır. Yani bir kolondaki veriyi değiştirip “Kaydet(Save)” butonuna basarsanız. Veritabanına güncelleme yapılacaktır. Ya da bir satırı seçip sildiğinizde ve tekrar “Kaydet(Save)” butonuna bastığınızda ilgili satır veritabanından silinecektir. Ya da “+” butonuna basarak yeni bir satır oluşacaktır ve bu satır içine “boş bırakılamayacak” verileri girerek tekrar “Kaydet(Save)” butonuna basarsanız veritabanına yeni kayıt eklenecektir. Burada dikkat ettiyseniz yeni kayıt ekleme, güncelleme, silme işlemlerini yaptıktan sonra “Kaydet(Save)” butonuna bastığımızda işlemler veritabanında gerçekleştirilmektedir. Yani kaydetme işlemi yapmadıkça, yaptığınız işlemleri iptal etme şansınız var demektir. 🙂

Dikkat !!

Bazı tablolarda kayıt silme işlemi yaparken hata ile karşılaşabilirsiniz. Bunun sebebi büyük olasılıkla; silmek istediğiniz tablodaki kaydın ilişkili olduğu bir tabloda kullanılmasından kaynaklanır. Önce alt tablodaki kayıtların silme işlemini yapıp bu kaydı silerseniz sorunsuz olarak kaydın silinmesini sağlamış olursunuz.. İlerleyen yazılarımızda bununla ilgili örnekte yapacağız..

Şimdi oluşturacağım basit bir senaryo üzerinden ilerleyelim. Buraya kadar herşey güzel verilerimiz veritabanından listeliyoruz. Yeni kayıt ekleme, silme, güncelleme işlemlerini yapabiliyoruz. Peki belli bir kolona göre arama yapmak istersek bunu nasıl yapacağız. 1 textbox ve 1 buton koyup pataküte kod yazacağız.. Tabii ki hayır.. 🙂 Dataset nesnesi tasarlanırlen çoğu programda olan ortak işlemler düşünülmüş ve bunlara uygun bir nesne oluşturulmuştur. Şimdi senaryomuza uygun olarak programımızda “City” ve “Contact Title” kolonları üzerinde arama yapılmasını sağlayalım.

image

Uygulamamızı kapatıyoruz ve tasarım ekranında “DataGridView” kontrolümüzü seçiyoruz. Sağ üst köşesindeki “Küçük okçuk” ‘a tıklayarak “Add Query” linkine tıklıyoruz..

image

Ekranın üstünde şu açıklama yazıyor.. Varolan ya da yeni bir sorgu girin. Bir ToolStrip kontrolü eklenecek ve bu kontrol ile sorgunuz çalıştırılacaktır. Varolan bir sorguyu değiştirmek ya da stored procedure kullanmak istiyorsan, dataset designer ‘daki ilgili tabloya ait “adapter” üzerindeki “Command” ayarını kullanın.

Biz o değişikliği daha sonra yapacağız.. 🙂 Yukarıdaki resimde gördüğünüz gibi “FillByCity” olarak yeni bir sorgu oluşturacağımı belirttim diyerek “Query Builder…” butonuna basıyorum..

image

İlk önce “City” alanının “Filter” bölümüne “ LIKE @City + ‘%’ ” ifadesini yazıyoruz. Böylece “ @City ” değişkeni ile göndereceğimiz değer ile başlayan şehirlerin listelenmesini sağlayacaktır. Listeleme sonucunda elde edilen veriler “City” kolonuna göre A’dan Z’ye sıralanması için “Sort Type” alanı “Ascending” olarak seçtim.

image

Execute Query” bastığımızda bizden “ @City ” değişkenin değerini isteyecektir. “Lon” yazarak “OK” bastığınızda “London” değerine sahip satırlar gelecektir. Sorgumuz hazır “OK” basarak “Query Builder…” ekranını sonlandırıyoruz..

image

Bu ekranda yazdığımız sorgumuz görünmektedir. Bu ekranıda “OK” diyerek sonlandırıyoruz. Form’umuza otomatik olarak City kolonu üzerinden arama yapan ToolStrip kontrollerimi eklenecektir.

image

image

Biraz görsellik yaparak makalemizi sonladıralım. Yeni eklenen “ToolStrip” kontrolünü ve onun içindeki kontrolleri görmüşsünüzdür. “City :” yazan label’ı “Bold”, “FillByCity” yazan butonoda yeni bir “Image” ekliyorum. “DisplayStyle” özelliğini “Image” olarak ayarlamayı unutmayın !

image

Uygulamamızı çalıştırıyoruz..

image

Gördüğünüz  gibi aranılan kelime ile başlayan tüm kayıtlar listelendi. Çok hızlı bir şekilde “ContactName” ve “ContactTitle” kolonları içinde arama özelliği kazandıralım.

image

image

image

image

City Alanına Göre Arama

image

Contact Title Alanına Göre Arama

image

ContactName Alanına Göre Arama

image

Eğer arama alanlarını tek bir menü satırında toplamak isterseniz; Navigator’ı seçiyoruz ve “Smart Tag(Sağ üstteki küçük okçuk)” ‘dan “Embed in ToolStripContainer” seçin.

image

DataGridView’ı Oluşan panel’in içine atın ve DataGridView’ın “Dock” özelliğini “Fill” olarak ayarlayın..

image

Sırası ile yukarıda kalan arama ToolStrip kontrollerini kes yaparak Navigator ‘ın bulunduğu panel’i genişletin ve yanında boş bir alana yapıştır’ın. Aynı işlemi hepsi için yapın.

image

Tüm arama alanlarını bu alana taşıdıysanız. Bu panel’in “Dock” özelliğini “Fill” yapın. Sonra her bir arama ToolStrip’inin taşınabilir olduğunu göreceksiniz. İstediğini gibi düzenleyebilirsiniz.. Ben hepsini alt satırda yan yana dizdim..

image

Bu kes – yapıştır işleminde kestiğiniz kontrolün olay bağlantıları kopuyor. Bu bağlantıları tekrar yapmanız gerekmektedir. Sadece ilgili kontrolü seçip, ilgili olayına gelerek bağlı olduğu metodu seçin. Aşağıdaki resmin solundaki gibi. City arama butonunu seçtim ve “Click” olayını, ilgili metoduna bağladım.

image

Uygulama çalışıyor süper.. 🙂

image

Herkese iyi çalışmalar..

ASP.NET – SQL Data Source Kullanarak Kodsuz CRUD İşlemleri – 2

Bu ikinci bölümde, ASP.NET – SQL Data Source Kullanarak Kodsuz CRUD İşlemleri – 1 makalesinde kaldığımız yerden devam ederek, İlişkili tablolarda kod yazmadan nasıl CRUD işlemlerini gerçekleştirebileceğimizi göstereceğim. SQL veritabanındaki tablo yapımızı aşağıdaki gibi yapıyoruz.. (PrimaryKey kolonları IDENTITY yapmayı unutmayın !)

Veritabanı Diyagramı;

Veritabanı Diyagram

WebForm üzerindeki GridView kontrolümüz şu şekilde değişecektir.

kmb-udemy-reklam

Tasarım Görünümü;

WebForm Görüntüsü

WebForm ASP.NET Kaynak Kodu;

<asp:SqlDataSource ID=”sdsUserTable2″ runat=”server” ConnectionString=”” DeleteCommand=”DELETE FROM [UserTable2] WHERE [ID] = @ID”
InsertCommand=”INSERT INTO [UserTable2] ([Name], [Surname], [Phone], [CityID]) VALUES (@Name, @Surname, @Phone, @CityID)”
SelectCommand=”SELECT * FROM [UserTable2] ORDER BY [Name], [Surname]” UpdateCommand=”UPDATE [UserTable2] SET [Name] = @Name, [Surname] = @Surname, [Phone] = @Phone, [CityID] = @CityID WHERE [ID] = @ID”>
<asp:ControlParameter ControlID=”GridView1″ DefaultValue=”-1″ Name=”ID” PropertyName=”SelectedValue”
Type=”Int32″ />
<asp:ControlParameter ControlID=”GridView1″ DefaultValue=”—“ Name=”Name” PropertyName=”SelectedValue”
Type=”String” />
<asp:ControlParameter ControlID=”GridView1″ DefaultValue=”—“ Name=”Surname” PropertyName=”SelectedValue”
Type=”String” />
<asp:ControlParameter ControlID=”GridView1″ DefaultValue=”123456″ Name=”Phone” PropertyName=”SelectedValue”
Type=”String” />
<asp:ControlParameter ControlID=”GridView1″ DefaultValue=”1″ Name=”CityID” PropertyName=”SelectedValue”
Type=”Int32″ />
<asp:ControlParameter ControlID=”GridView1″ DefaultValue=”-1″ Name=”ID” PropertyName=”SelectedValue”
Type=”Int32″ />
<asp:SqlDataSource ID=”sdsCityTable” runat=”server” ConnectionString=”” SelectCommand=”SELECT * FROM [CityTable] ORDER BY [CityName]”>
<asp:GridView ID=”GridView1″ runat=”server” AutoGenerateColumns=”False” CellPadding=”4″
DataKeyNames=”ID” DataSourceID=”sdsUserTable2″ EnableModelValidation=”True” ForeColor=”#333333″
ShowFooter=”True”>
<asp:CommandField HeaderText=”??lemler” ShowDeleteButton=”True” ShowEditButton=”True”
ShowSelectButton=”True” />
<asp:BoundField DataField=”ID” HeaderText=”ID” InsertVisible=”False” ReadOnly=”True”
SortExpression=”ID” Visible=”False” />
<asp:TextBox ID=”TextBox1″ runat=”server” Text=”>
<asp:LinkButton ID=”lnkYeni” runat=”server” Font-Size=”Small” ForeColor=”White” onclick=”lnkYeni_Click”>Yeni

<asp:Label ID=”Label1″ runat=”server” Text=”>
<asp:BoundField DataField=”Surname” HeaderText=”Soyad” SortExpression=”Surname” />
<asp:DropDownList ID=”DropDownList3″ runat=”server” DataSourceID=”sdsCityTable” DataTextField=”CityName”
DataValueField=”ID” Height=”22px” SelectedValue=” Width=”100px”>
<asp:DropDownList ID=”DropDownList2″ runat=”server” DataSourceID=”sdsCityTable” DataTextField=”CityName”
DataValueField=”ID” Enabled=”False” Height=”22px” SelectedValue=” Width=”100px”>

WebForm VB Kaynak Kodu;

Partial Class Default2
Inherits System.Web.UI.Page
Protected Sub lnkYeni_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Me.sdsUserTable2.Insert()
End Sub
End Class

Kullanım Görünümü;

img3

img4

Burada yaptığımız şeyi kısaca özetlersek;

Şehir kolonunu veritabanın’da Kullanıcı tablosunda bir sayı kolonu olarak tutuyoruz ve bu kolon bir sayı içeriyor. İçerdiği sayının karşılığı şehir adı ise, şehir tablosunda tutuluyor. Kullanıcı ile şehir tablosu arasında bir ilişki mevcut. Bu ilişki sayesinde yukarıdaki görüntüdeki gibi Kullanıcı tablosunda şehir bilgisini kullanıcıya bir liste olarak gösterebiliriz. Böylece kullanıcı buraya yanlış bir bilgi giremez ve var olmayan bir bilgide giremez. Bu bize kullanıcının hata yapmasını kısıtladığı gibi, ilgili kolona ne veri girmesi gerektiğini de gösterir.

kmb-udemy-reklam

ASP.NET – SQL Data Source Kullanarak Kodsuz CRUD İşlemleri – 1

ASP.NET ‘de SQL Data Source Nesnesi ile kod yazmadan bir SQL veritabanı tablosu üzerinde SELECT (veri listeleme) , INSERT (veri ekleme), UPDATE (veri güncelleme), DELETE (veri silme) işlemlerinin nasıl yapılacağını anlatıyorum..

http://content.screencast.com/users/MaviSeffaf/folders/Default/media/ea82caca-fa65-4831-bdfb-f9d7363b0a19/mp4h264player.swf

Videoyu indir !

Dizayn :

Ekran Alıntısı

Kaynak Kod :

    <asp:SqlDataSource ID="sdsUserTable" runat="server" ConnectionString="" DeleteCommand="DELETE FROM [UserTable] WHERE [ID] = @ID"
        InsertCommand="INSERT INTO [UserTable] ([Name], [Surname], [Phone], [City]) VALUES (@Name, @Surname, @Phone, @City)"
        SelectCommand="SELECT * FROM [UserTable] ORDER BY [Name], [Surname]" UpdateCommand="UPDATE [UserTable] SET [Name] = @Name, [Surname] = @Surname, [Phone] = @Phone, [City] = @City WHERE [ID] = @ID">
        <asp:ControlParameter ControlID="GridView1" DefaultValue="-1" Name="ID" PropertyName="SelectedValue"
            Type="Int32" />
        <asp:ControlParameter ControlID="GridView1" DefaultValue="" Name="Name" PropertyName="SelectedValue"
            Type="String" />
        <asp:ControlParameter ControlID="GridView1" Name="Surname" PropertyName="SelectedValue"
            Type="String" />
        <asp:ControlParameter ControlID="GridView1" Name="Phone" PropertyName="SelectedValue"
            Type="String" />
        <asp:ControlParameter ControlID="GridView1" Name="City" PropertyName="SelectedValue"
            Type="String" />
        <asp:ControlParameter ControlID="GridView1" DefaultValue="-1" Name="ID" PropertyName="SelectedValue"
            Type="Int32" />
        <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
            Caption="Ki?iler" CellPadding="4" DataKeyNames="ID" DataSourceID="sdsUserTable"
            EmptyDataText="Kay?t yok.." EnableModelValidation="True" ForeColor="#333333"
            HorizontalAlign="Center" PageSize="2" ShowFooter="True">
            <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowSelectButton="True" />
            <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True"
                SortExpression="ID" Visible="False" />
            <asp:BoundField DataField="Surname" HeaderText="Surname" SortExpression="Surname" />
            <asp:TextBox ID="TextBox1" runat="server" Text=''>
                <asp:LinkButton ID="lnkYeni" runat="server" ForeColor="White" onclick="lnkYeni_Click">Yeni                                                               
<asp:Label ID="Label1" runat="server" Text=''>

ADO.NET Entity Framework – CRUD İşlemleri ve Alternatif Yollar

ADO.NET Entity Framework ile Select, Insert, Update, Delete işlemlerini nesneler üzerinden kolayca yapabiliyoruz. Bu konu hakkında bir sürü makale yazılmış.. Bu makaleleri okuyarak detaylarını öğrenebilirsiniz. Benim burada paylaşmak istediğim, CRUD işlemlerini yapan kod kalıplarıdır. Bir form üzerinde bu kodları test edebilirsiniz..

Form1.vb

Public Class Form1

 

    Private _Entity As MyEntity.Entities

    Public Property Entity() As MyEntity.Entities

        Get

            Return _Entity

        End Get

        Set(ByVal value As MyEntity.Entities)

            _Entity = value

        End Set

    End Property

 

    Private _MyRandom As New Random

    Public Property MyRandom() As Random

        Get

            Return _MyRandom

        End Get

        Set(ByVal value As Random)

            _MyRandom = value

        End Set

    End Property

 

 

    ”’

    ”’ Entity instance oluşturur.

    ”’

    ”’

    ”’

    Private Function GetEntityInstance() As MyEntity.Entities

        If (Me.Entity Is Nothing) Then _

            Me.Entity = New MyEntity.Entities

 

        Return Me.Entity

    End Function

 

 

    Private Sub GetList(ByVal startWith As Char)

        Dim entity As MyEntity.Entities = Me.GetEntityInstance()

        Dim str As String = startWith.ToString()

 

        Dim locations = From l In entity.Location _

                        Where l.Name.StartsWith(str) _

                        Select l

 

        Me.DataGridView1.DataSource = locations

    End Sub

 

    Private Sub GetList()

        Dim entity As MyEntity.Entities = Me.GetEntityInstance()

 

        Dim locations = From l In entity.Location _

                        Select l

 

        Me.DataGridView1.DataSource = locations

 

 

        ” // *********************************************//

        ” // ALTERNATİF                                   //

        ” // *********************************************//

 

        ‘Using entity As New MyEntity.Entities

 

        ‘    Dim locations = From l In entity.Location _

        ‘                    Select l

 

        ‘    Me.DataGridView1.DataSource = locations

 

        ‘End Using

 

    End Sub

 

    Private Sub InsertLocation()

 

        ” // *********************************************//

        ” // ALTERNATİF                                   //

        ” // *********************************************//

 

        ‘Using entity As New MyEntity.Entities

 

        ‘    Dim newObject As New MyEntity.Location

        ‘    newObject.ModifiedDate = DateTime.Now.Date

        ‘    newObject.Name = “F” & “_Yeni_” & Me.MyRandom.Next(0, 250).ToString()

        ‘    newObject.CostRate = 0

        ‘    newObject.Availability = 1

 

        ‘    entity.AddToLocation(newObject)

        ‘    entity.SaveChanges()

 

        ‘End Using

 

 

        ” // *********************************************//

        ” // ALTERNATİF                                   //

        ” // *********************************************//

 

        Dim entity As MyEntity.Entities = Me.GetEntityInstance()

 

        Dim newobject As New MyEntity.Location

        newobject.ModifiedDate = DateTime.Now.Date

        newobject.Name = “f” & “_yeni_” & Me.MyRandom.Next(0, 250).ToString()

        newobject.CostRate = 0

        newobject.Availability = 1

 

        entity.AddToLocation(newobject)

        entity.SaveChanges()

 

    End Sub

 

    Private Sub DeleteLocation(ByVal id As Integer)

 

        ” // *********************************************//

        ” // ALTERNATİF                                   //

        ” // *********************************************//

 

        ” Item Primary key kolonu değerine göre elde edilir.

       

        ‘Dim key As New EntityKey(“Entities.Location”, _

        ‘                         New KeyValuePair(Of String, Object)() _

        ‘                            { _

        ‘                                New KeyValuePair(Of String, Object)(“LocationID”, CType(id, Int16)) _

        ‘                            })

 

        ‘Dim location As MyEntity.Location = Me.Entity.GetObjectByKey(key)

 

        ‘If (location IsNot Nothing) Then

        ‘    Me.Entity.Location.Context.DeleteObject(location)

        ‘    Me.Entity.SaveChanges()

        ‘End If

 

 

 

        ” // *********************************************//

        ” // ALTERNATİF                                   //

        ” // *********************************************//

 

        ” Item Primary key kolonu değerine göre elde edilir.

       

        ‘Using entity As New MyEntity.Entities

 

        ‘    ‘ Aranan item özelliklerinin belirtildiği nesne..

        ‘    Dim obj As New MyEntity.Location

        ‘    obj.LocationID = id

 

        ‘    ” Entity içinde nesneye erişmek için key oluşturulur.

        ‘    Dim key As EntityKey = entity.CreateEntityKey(obj.GetType().Name, obj)

 

        ‘    ” Item entity içinde eşleşirse..

        ‘    If (entity.TryGetObjectByKey(key, obj)) Then

 

        ‘        ” Sistemden silinir.

        ‘        entity.DeleteObject(obj)

        ‘        entity.SaveChanges()

 

        ‘    End If

 

        ‘End Using

 

 

        ” // *********************************************//

        ” // ALTERNATİF                                   //

        ” // *********************************************//

 

        ” Silinecek nesne elde edilir.

        Dim deleteObj As MyEntity.Location = Me.Entity.Location.Where( _

            Function(loc) _

                loc.LocationID = id).FirstOrDefault()

 

        If (deleteObj IsNot Nothing) Then

 

            ” Kullanıcıdan silme onayı alınır..

            Dim diaResult As DialogResult = _

                MessageBox.Show(“Kayıt silinsin mi?”, “Silme İşlemi”, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)

 

            If (diaResult = Windows.Forms.DialogResult.Yes) Then

 

                ” Nesne silinir..

                Me.Entity.DeleteObject(deleteObj)

                Me.Entity.SaveChanges()

 

            End If

 

        End If

 

 

    End Sub

 

    Private Sub UpdateLocation(ByVal id As Integer)

 

        ” // *********************************************//

        ” // ALTERNATİF                                   //

        ” // *********************************************//

 

        ‘    Dim entity As MyEntity.Entities = Me.GetEntityInstance()

 

        ‘    ” Güncellenecek nesne elde edilir.

        ‘    Dim updObj As MyEntity.Location = entity.Location.Where _

        ‘            (Function(obj) obj.LocationID = id).FirstOrDefault()

 

        ‘    ” Özelliklerine yeni değerler set edilir.

        ‘    With updObj

 

        ‘        .Name = “Türkiye” & id.ToString

 

        ‘    End With

 

        ‘    entity.SaveChanges()

 

 

 

        ” // *********************************************//

        ” // ALTERNATİF                                   //

        ” // *********************************************//

 

        Using entity As New MyEntity.Entities

 

            ” Güncellenecek nesne elde edilir.

            Dim updObj As MyEntity.Location = entity.Location.Where _

                    (Function(obj) obj.LocationID = id).FirstOrDefault()

 

            ” Özelliklerine yeni değerler set edilir.

            With updObj

 

                .Name = “Türkiye” & id.ToString

 

            End With

 

            entity.SaveChanges()

 

        End Using

 

 

    End Sub

 

 

 

 

    Private Sub btnSelect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSelect.Click

        Me.GetList(“F”)

    End Sub

 

    Private Sub btnSelectAll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSelectAll.Click

        Me.GetList()

    End Sub

 

    Private Sub btnInsert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInsert.Click

        Me.InsertLocation()

        Me.GetList()

    End Sub

 

    Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click

 

        ” Seçili satır ID ‘leri silme işlemi için ilgili fonksiyona gönderilir.

        For Each row As DataGridViewRow In Me.DataGridView1.SelectedRows

 

            Dim locID As Integer = row.Cells(“LocationID”).Value

            Me.DeleteLocation(locID)

 

        Next

 

        ” Opsiyonel..

        ”Me.GetList()

 

    End Sub

 

    Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click

 

 

        ” Seçili satır ID ‘leri silme işlemi için ilgili fonksiyona gönderilir.

        For Each row As DataGridViewRow In Me.DataGridView1.SelectedRows

 

            Dim locID As Integer = row.Cells(“LocationID”).Value

            Me.UpdateLocation(locID)

 

        Next

 

        Me.GetList()

 

    End Sub

 

End Class