İlk Önce Excel 2007′yi Açarak AÅŸağıdaki Kayıtlarımızı Girelim Ve Products Olarak Kaydedelim
ProductID   ProductName   Description
1   ASP.NET 2008   Asp.Net Öğrenmek İçin İdeal Bi Kitap.
2   C# 2008   C#’ın Kalbi Bu Kitapda Atıyor.
3   SQL SERVER 2008   Beklenen Kitap Nihayet Çıktı.
4   JAVA 2006   Java İçin Temel Bir Kaynak.
5   VB 2006   Visual Basic Öğrenmek İsteyenlere Tavsiye Edilir.
6   MySQL 2007   MySQL Bugünlerde Çok Revaçta Öğrenmek Lazım.
7   ACCESS 2007   Vazgeçilemeyen Veritabanı Access Dünyanın Tercihi.
8   PHP 2008   Php İsteyenler Buyrun Buradan.
9   DELPHI 2008   Öğrenilmesi Gereken Bi Yapı.
10   J# 2005   J# Microsoftun Taçsız Kralı.
Visual Studio İle Visual Basic ASP.NET Web Projesi Oluşturalım,Hemen Ardından Daha Önce Oluşturduğumuz Products.xlsx Dosyamızı App_Data İçerisine,
Kopyala Yapıştır Yapalım Daha Sonra web.config Dosyamızda ConnectionStrings Ayarımızı Aşağıdaki Gibi Yapalım.
<connectionStrings>
<add name=”Excel”
connectionString=”Provider=Microsoft.ACE.OLEDB.12.0; Data Source=|DataDirectory|\Products.xlsx; Extended Properties=Excel 12.0″
providerName=”System.Data.OleDb”/>
</connectionStrings>
Default.aspx Sayfamızı’da AÅŸağıdaki Gibi Tasarlayalım.
<%@ Page Language=”VB” AutoEventWireup=”false” CodeFile=”Default.aspx.vb” Inherits=”_Default” %>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head runat=”server”>
<title></title>
<style type=”text/css”>
table { background-color:Black; color:White; }
.fe { background-color:yellowgreen; color:blue; }
.de:hover { font-size:20px; }
.he { color:Blue; font-size:medium; font-family:Sans-Serif Arial Helvetica; }
.style1
{
width: 137px;
}
</style>
</head>
<body>
<form id=”form1″ runat=”server”>
<div>
<table id=”myTable” runat=”server” align=”center”>
<tr>
<td><b>Ürünler</b></td>
<td><asp:DropDownList ID=”drpProducts” Width=”205″ runat=”server”
AutoPostBack=”true” /></td>
</tr>
<tr>
<td><b>Ürün No</b></td>
<td><asp:TextBox ID=”txtProductID” runat=”server” Width=”200″ /></td>
</tr>
<tr>
<td><b>Ürün Adı</b></td>
<td><asp:TextBox ID=”txtProductName” runat=”server” Width=”200″ /></td>
</tr>
<tr>
<td valign=”top”><b>Ürün Açıklaması</b></td>
<td><asp:TextBox ID=”txtDescription” runat=”server” Width=”300″ Height=”100″
TextMode=”MultiLine” MaxLength=”200″ CssClass=”he” /></td>
</tr>
<tr>
<td colspan=”2″ align=”right”>
<asp:Button ID=”btnInsert” CssClass=”fe de” runat=”server” Text=”Kaydet” />
<asp:Button ID=”btnUpdate” CssClass=”fe de” runat=”server” Text=”Güncelle” />
<asp:Button ID=”txtClear” CssClass=”fe de” runat=”server” Text=”Temizle” />
</td>
</tr>
</table>
</div>
</form>
</body>
</html>

Tasarım Kısmını’da Tamamladığımıza Göre Projemiz Üzerinde SaÄŸ Click Diyerek Projemize App_Code Klasörünü Ekleyelim
Ve App_Code Klasörü İçerisine Products.vb İsimli Bir Sınıf Oluşturalım Ve Aşağıdaki Gibi Yazalım,
Imports System.Data
Imports System.Data.OleDb
Imports c_Manager = System.Web.Configuration.WebConfigurationManager
Imports Microsoft.VisualBasic
Namespace Silo.Excel
Public Class Products
#Region “Variables For Products”
Private _productID As Double
Private _productName As String
Private _aciklama As String
#End Region
#Region “Properties For Products”
Public Property ProductID() As Double
Get
Return Me._productID
End Get
Set(ByVal value As Double)
Me._productID = value
End Set
End Property
Public Property ProductName() As String
Get
Return Me._productName
End Get
Set(ByVal value As String)
Me._productName = value
End Set
End Property
Public Property Aciklama() As String
Get
Return Me._aciklama
End Get
Set(ByVal value As String)
Me._aciklama = value
End Set
End Property
#End Region
#Region “ConnectionStrings For Products”
Public Shared ReadOnly Property _ConnectionString() As String
Get
Return c_Manager.ConnectionStrings(“Excel”).ConnectionString
End Get
End Property
#End Region
#Region “Fill For DropDownList Method”
Public Shared Sub DoldurDropDownList(ByRef myDropDownList As DropDownList)
Dim dt As DataTable = Nothing
Using cn As New OleDbConnection(_ConnectionString)
Dim strSELECT As String = “SELECT ProductID,ProductName,Description FROM [Sayfa1$]”
Using com As New OleDbCommand(strSELECT, cn)
Dim da As New OleDbDataAdapter(com)
dt = New DataTable()
If com.Connection.State <> ConnectionState.Open Then
com.Connection.Open()
End If
da.Fill(dt)
com.Connection.Close()
myDropDownList.DataTextField = “ProductName”
myDropDownList.DataValueField = “ProductID”
myDropDownList.DataSource = dt
myDropDownList.DataBind()
End Using
End Using
End Sub
#End Region
#Region “Get Products For DropDownList Method”
Public Shared Function FillDropDownList(ByRef myDropDownList As DropDownList) As Products
Dim ProductID As Integer = Integer.Parse(myDropDownList.SelectedValue.ToString())
Dim myProducts As New Products()
Using cn As New OleDbConnection(_ConnectionString)
Dim strSELECT As String = “SELECT ProductID,ProductName,Description FROM [Sayfa1$] WHERE ProductID=?”
Using com As New OleDbCommand(strSELECT, cn)
com.Parameters.AddWithValue(“?”, ProductID)
If com.Connection.State <> ConnectionState.Open Then
com.Connection.Open()
End If
Dim dr As OleDbDataReader = com.ExecuteReader(CommandBehavior.CloseConnection)
Dim dogruMu As Boolean = IIf(dr.HasRows, True, False)
If dogruMu Then
While dr.Read()
myProducts.ProductID = dr.GetDouble(0)
myProducts.ProductName = dr.GetString(1)
myProducts.Aciklama = dr.GetString(2)
End While
End If
dr.Close()
End Using
End Using
Return myProducts
End Function
#End Region
#Region “Save For Products Method”
Public Shared Sub SaveProducts(ByRef myProducts As Products)
Try
Using cn As New OleDbConnection(_ConnectionString)
Dim strSELECT As String = “INSERT INTO [Sayfa1$] VALUES(?,?,?)”
Using com As New OleDbCommand(strSELECT, cn)
com.Parameters.AddWithValue(“?”, myProducts.ProductID)
com.Parameters.AddWithValue(“?”, myProducts.ProductName)
com.Parameters.AddWithValue(“?”, myProducts.Aciklama)
If com.Connection.State <> ConnectionState.Open Then
com.Connection.Open()
End If
com.ExecuteNonQuery()
com.Connection.Close()
HttpContext.Current.Response.Write(“Kayıt BaÅŸarılı.”)
End Using
End Using
Catch ex As Exception
HttpContext.Current.Response.Write(“Insert Hatası OluÅŸtu ?<br />” & vbCrLf & ex.Message)
End Try
End Sub
#End Region
#Region “Update For Products Method”
Public Shared Sub UpdateProducts(ByRef myDropDownList As DropDownList, ByRef myProducts As Products)
Try
Using cn As New OleDbConnection(_ConnectionString)
Dim ProductID As Integer = Integer.Parse(myDropDownList.SelectedValue.ToString())
Dim strUPDATE As String = “UPDATE [Sayfa1$] SET ProductID=?, ProductName=?, Description=? WHERE ProductID=?”
Using com As New OleDbCommand(strUPDATE, cn)
com.Parameters.AddWithValue(“?”, myProducts.ProductID)
com.Parameters.AddWithValue(“?”, myProducts.ProductName)
com.Parameters.AddWithValue(“?”, myProducts.Aciklama)
com.Parameters.AddWithValue(“?”, ProductID)
If com.Connection.State <> ConnectionState.Open Then
com.Connection.Open()
End If
com.ExecuteNonQuery()
HttpContext.Current.Response.Write(“Güncelleme BaÅŸarılı Oldu.”)
com.Connection.Close()
End Using
End Using
Catch ex As Exception
HttpContext.Current.Response.Write(“Güncelleme Hatası OluÅŸtu ?<br />.” & vbCrLf & ex.Message)
End Try
End Sub
#End Region
#Region “Clear Table Method”
Public Shared Sub ClearTable(ByRef myTable As HtmlTable)
For Each myRow As HtmlTableRow In myTable.Rows
For Each myCell As HtmlTableCell In myRow.Cells
For Each myControl As Control In myCell.Controls
If (TypeOf myControl Is TextBox) Then
Dim myText As TextBox = CType(myControl, TextBox)
myText.Text = “”
End If
Next
Next
Next
End Sub
#End Region
End Class
End Namespace
Products Class’ımızı Tamamladığımıza Göre Default.aspx.vb Kısmını’da AÅŸağıdaki Gibi Yazalım.
Imports Silo.Excel
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
Products.DoldurDropDownList(drpProducts)
End If
End Sub
Protected Sub btnInsert_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnInsert.Click
Dim myProducts As New Products()
myProducts.ProductID = txtProductID.Text
myProducts.ProductName = txtProductName.Text
myProducts.Aciklama = txtDescription.Text
Products.SaveProducts(myProducts)
End Sub
Protected Sub drpProducts_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles drpProducts.SelectedIndexChanged
Dim myProducts As Products = Products.FillDropDownList(drpProducts)
txtProductID.Text = myProducts.ProductID
txtProductName.Text = myProducts.ProductName
txtDescription.Text = myProducts.Aciklama
End Sub
Protected Sub btnUpdate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
Dim myProducts As New Products()
myProducts.ProductID = txtProductID.Text
myProducts.ProductName = txtProductName.Text
myProducts.Aciklama = txtDescription.Text
Products.UpdateProducts(drpProducts, myProducts)
Products.FillDropDownList(drpProducts)
End Sub
Protected Sub txtClear_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtClear.Click
Products.ClearTable(myTable)
End Sub
End Class

Excel Visual Basic Tarafını Bitirmiş Olduk Şimdi Sıra C# Kısmına Geldi Dilerseniz Vakit Kaybetmeden C# İle Yeni Bir ASP.NET Web Projesi Oluşturalım,
Visual Basic’de Yaptığımız İşlemlerin Aynısını C# İçin’de Yapalım İlk Önce App_Data İçerisinne Products.xlsx Dosyamızı Kopyala Yapıştır Yapıyoruz,
Hemen Ardından ConnectionString BaÄŸlantımızı web.config Dosyamızın İçerisine Yukarıda Visual Basic’de Yaptığımız Gibi Ayarlıyoruz,
Daha Sonra Projemize Sağ Click App_Code Klasörünü Ekliyoruz Ve Urunler İsminde Bir Class Oluşturuyoruz Ve Aşağıdaki Gibi Yazıyoruz,
Unutmadan C# Default.aspx Sayfamızın Tasarımı Aynı Visual Basic’deki Gibidir Sadece Buttonların Click Event’larını Ve DropDownList _SelectedIndexChanged Silip Yeniden OluÅŸturmamız Gerekli
Urunler Class’ımız AÅŸağıdaki Gibidir.
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.OleDb;
using c_Manager = System.Web.Configuration.WebConfigurationManager;
namespace Silo.AspNet
{
public class Urunler
{
#region Variables For Products
private double _productid;
private string _productname;
private string _aciklama;
#endregion
#region Properties For Products
public double ProductID
{ get { return this._productid; } set { this._productid = value; } }
public string ProductName
{ get { return this._productname; } set { this._productname = value; } }
public string Aciklama
{ get { return this._aciklama; } set { this._aciklama = value; } }
#endregion
#region ConnectionStrings For Products
public static string connectionString
{
get { return c_Manager.ConnectionStrings["Excel"].ConnectionString; }
}
#endregion
#region Fill For DropDownList Method
public static void DoldurDropDownList(DropDownList myDropDownList)
{
DataTable myDataTable = null;
using (OleDbConnection cn = new OleDbConnection(connectionString))
{
string strSELECT = “SELECT ProductID,ProductName,Description FROM [Sayfa1$]“;
using (OleDbCommand com = new OleDbCommand(strSELECT, cn))
{
OleDbDataAdapter da = new OleDbDataAdapter(com);
myDataTable = new DataTable();
if (com.Connection.State == ConnectionState.Closed)
com.Connection.Open();
da.Fill(myDataTable);
com.Connection.Close();
myDropDownList.DataTextField = “ProductName”;
myDropDownList.DataValueField = “ProductID”;
myDropDownList.DataSource = myDataTable.DefaultView;
myDropDownList.DataBind();
}
}
}
#endregion
#region Get Products For DropDownList
public static Urunler UrunDoldursana(DropDownList myDropDownList)
{
int ProductID = int.Parse(myDropDownList.SelectedValue.ToString());
Urunler myProducts = new Urunler();
using (OleDbConnection cn = new OleDbConnection(connectionString))
{
string strSELECT = “SELECT ProductID,ProductName,Description FROM [Sayfa1$] WHERE ProductID=?”;
using (OleDbCommand com = new OleDbCommand(strSELECT, cn))
{
com.Parameters.AddWithValue(“?”, ProductID);
if (com.Connection.State == ConnectionState.Closed)
com.Connection.Open();
OleDbDataReader reader = com.ExecuteReader(CommandBehavior.CloseConnection);
bool dogruMu = reader.HasRows ? true : false;
if (dogruMu)
{
while (reader.Read())
{
myProducts.ProductID = reader.GetDouble(0);
myProducts.ProductName = reader["ProductName"].ToString();
myProducts.Aciklama = reader["Description"].ToString();
//ID.Text = reader.GetDouble(0).ToString();
//Ad.Text = reader.GetString(1);
//Aciklama.Text = reader.GetString(2);
}
}
reader.Close();
}
}
return myProducts;
}
#endregion
#region Save For Products Method
public static void UrunKaydetsene(Urunler myProducts)
{
try
{
using (OleDbConnection cn = new OleDbConnection(connectionString))
{
string strSELECT = “INSERT INTO [Sayfa1$] VALUES(?,?,?)”;
using (OleDbCommand com = new OleDbCommand(strSELECT, cn))
{
com.Parameters.AddWithValue(“?”, myProducts.ProductID);
com.Parameters.AddWithValue(“?,”, myProducts.ProductName);
com.Parameters.AddWithValue(“?,”, myProducts.Aciklama);
if (com.Connection.State == ConnectionState.Closed)
com.Connection.Open();
com.ExecuteNonQuery();
com.Connection.Close();
HttpContext.Current.Response.Write(“BaÅŸarılı Kayıt !”);
}
}
}
catch (Exception ex)
{
HttpContext.Current.Response.Write(“Kayıt Hatası OluÅŸtu !<br />” + ex.Message);
}
}
#endregion
#region Update For Products Method
public static void UrunGuncellesene(DropDownList myDropDownList, Urunler myProducts)
{
try
{
using (OleDbConnection cn = new OleDbConnection(connectionString))
{
int ProductID = int.Parse(myDropDownList.SelectedValue.ToString());
string strSELECT =
“UPDATE [Sayfa1$] SET ProductID = ?, ProductName = ?, Description = ? ” +
“WHERE ProductID = ?”;
using (OleDbCommand com = new OleDbCommand(strSELECT, cn))
{
com.Parameters.AddWithValue(“?”, myProducts.ProductID);
com.Parameters.AddWithValue(“?,”, myProducts.ProductName);
com.Parameters.AddWithValue(“?,”, myProducts.Aciklama);
com.Parameters.AddWithValue(“?”, ProductID);
if (com.Connection.State == ConnectionState.Closed)
com.Connection.Open();
com.ExecuteNonQuery();
com.Connection.Close();
HttpContext.Current.Response.Write(“BaÅŸarılı Güncelleme !”);
}
}
}
catch (Exception ex)
{
HttpContext.Current.Response.Write(“Güncelleme Hatası OluÅŸtu !<br />” + ex.Message);
}
}
#endregion
#region Clear Table Method
public static void Clear(HtmlTable myTable)
{
foreach (HtmlTableRow myRow in myTable.Rows)
{
foreach (HtmlTableCell myCell in myRow.Cells)
{
foreach (Control myControl in myCell.Controls)
{
if (myControl is TextBox)
((TextBox)myControl).Text = “”;
}
}
}
}
#endregion
}
}
Sıra Geldi Default.aspx.cs Tarafına Onuda aşağıdaki Gibi Yazıyoruz.
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Silo.AspNet;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(!this.Page.IsPostBack)
Urunler.DoldurDropDownList(drpProducts);
}
protected void txtClear_Click(object sender, EventArgs e)
{
Urunler.Clear(myTable);
}
protected void drpProducts_SelectedIndexChanged(object sender, EventArgs e)
{
Urunler myProducts = Urunler.UrunDoldursana(drpProducts);
txtProductID.Text = myProducts.ProductID.ToString();
txtProductName.Text = myProducts.ProductName;
txtDescription.Text = myProducts.Aciklama;
}
protected void btnInsert_Click(object sender, EventArgs e)
{
Urunler myProducts = new Urunler();
myProducts.ProductID = double.Parse(txtProductID.Text);
myProducts.ProductName = txtProductName.Text;
myProducts.Aciklama = txtDescription.Text;
Urunler.UrunKaydetsene(myProducts);
Urunler.DoldurDropDownList(drpProducts);
}
protected void btnUpdate_Click(object sender, EventArgs e)
{
Urunler myProducts = new Urunler();
myProducts.ProductID = double.Parse(txtProductID.Text);
myProducts.ProductName = txtProductName.Text;
myProducts.Aciklama = txtDescription.Text;
Urunler.UrunGuncellesene(drpProducts, myProducts);
Urunler.DoldurDropDownList(drpProducts);
}
}
Evet Artık Her İki Projemizde Hazır Olduğuna Göre Çalıştırıp Sonuca Bakabiliriz
Sonuç Aşağıdaki Gibi Olacaktır.


Bu Makalemizde Excel 2007′yi Hem C# Hemde Visual Basic Kullanarak Aynı Bir Veritabanı Gibi Select,Insert,Update İşlemlerini GerçekleÅŸtirmiÅŸ Olduk,
Ne Yazık Ki Microsoft’un Excel İçin Delete Yöntemi Yok Dolayısıyla Delete İşlemini GerçekleÅŸtiremedik,
Bir Makalemizin Daha Sonuna Geldik Arkadaşlar Faydalı Olması Dileğiyle Görüşmek Üzere.










