İnsanoğlu hala tüm bilgisayarların en alışılmadık olanıdır. Jhon F.Kennedy
27 Eylül 2016 Salı
Veritabanı Tablo Sorgulamaları
Veritabanında Kolon İsmi Aratma:
Herhangi bir kolonun hangi tabloya ait olduğunu bulmak için girilen kolon ismini veritabanında yer alan tüm tablolarda aratmak için şöyle bir search sql cümlesi yazmalıyız:
SELECT * FROM information_schema.columns WHERE TRUE AND table_schema = 'public'
AND column_name ~* 'aratılmak istenen kolon ismi'
Veritabanında Birden Fazla Kayıt İçeren Tablo İsimlerini Aratma :
SELECT
pgClass.relname AS tableName,
pgClass.reltuples AS rowCount
FROM
pg_class pgClass
LEFT JOIN
pg_namespace pgNamespace ON (pgNamespace.oid = pgClass.relnamespace)
WHERE
pgNamespace.nspname NOT IN ('pg_catalog', 'information_schema') AND
pgClass.relkind='r' AND pgClass.reltuples>0 AND pgClass.relname ilike 'ad%'
Yukarıdaki sorguda, veritabanında ismi 'ad ' ile başlayan, bir ve birden fazla kayıt içeren tabloların listelenmesi sağlanır.
22 Eylül 2016 Perşembe
PHP Kodunun HTML'de Kullanımı
<body>
<form method="post" action="webPHP.php">--- form etiketinin tanımında metod tipinin post olarak tanımlanması ayrıca action ayarının form üzerindeki işlemlerin hangi php sayfasından beslendiğini gösterdiği için bu ayara dikkat etmek gerekir. Benim bu uygulamamda html kodu ile php kodu içiçe olduğundan sayfayı kendi içine post ettiğimden üzerinde çalıştığım dosyanın uzantısı php olacaktır. Böylece üzerinde çalıştığım dosyanın adını yazmam gerekiyor.
<table border="1" cellspacing="2" cellpadding="2">
<tr style="height:5px;">
<td style="height:5px;">
<font size="2" color="lightgreen">
<label for="ok"><?php echo $msg; ?></label> --- label nesnesinin tanımlanması ve php kodu ile değişkenin label nesnesine tanımlanması
</font>
</td>
<td style="height:5px;">
<font size="3" color="darkred"> Giriş için Başlık Tanımı</font>
</td>
</tr>
<tr width="%100">
<td width="%20">Yil:</td>
<td width="%80">
<select name="yillar" id="id"> ----- combobox nesnesinin tanımlanması id="id" olmasına dikkat edilir.
<option id="0">Lutfen yil seciniz</option> --- combobox ilk satırının ayarlanması (id="0" olmasına dikkat edilir.)
<?php
$sql=pg_query("SELECT * FROM dynyil ORDER BY yil");----sql ifadesinin $sql değişkenine bağlanması (<?php --- ?> arasına combox html kodunun içine yazılır.)
while ($rows = pg_fetch_array($sql)) ---- $sql değişkenine atanan postgresql cümleciğinin fieldlara ayrılarak teker teker $rows değişkenine atanması
{
$id=$rows['oid']; --- $rows değişkeninin tuttuğu postgresql cümleciğinden istenen alanların değişkenlere aktarılması
$yil=$rows['yil'];
?>
<option id="<?php echo $id ?>"> <?php echo $yil ?></option> ---- değişkene bağlı istenen fieldların combobox'da listelenmesi (burada da $id ' e dikkat edilir.)
<?php
}
$selectedyil=$_POST['yillar'];----- burada kullanıcının combobox'ta güncel olarak seçmiş olduğu kayıt $selectedyil değişkeninde tutulur
?> ---PHP kodunun bittiğini gösterir
</select>
</td>
</tr>
<tr width="%100">
<td width="%20">Donem:</td>
<td width="%80">
<select name="aylar" id="iday">
<option id="0">Lutfen ay seciniz</option>
<?php
$sql=pg_query("SELECT * FROM dynay ORDER BY aylar asc");
while ($rows = pg_fetch_array($sql))
{
$id=$rows['oid'];
$ay=$rows['aylar'];
?>
<option id="<?php echo $id ?>"> <?php echo $ay ?></option>
<?php
}
$selecteday=$_POST['aylar'];
?>
</select>
</td>
</tr>
<tr width="%100">
<td width="%20"></td>
<td width="%80">
<input type="submit" name="guncelle" value="Guncelle"> --- button nesnesinin tanımlanması burada name'e dikkat edilir.
<?php --- PHP kodunun başladığını gösterir
if(isset($_POST['guncelle']))--- button'a tıklandığında yapılacaklar
{
$yil=$selectedyil; --- combobox'tan seçilen kaydın $yil değişkenine aktarılması
$donem=$selecteday;
$sql=pg_query("UPDATE STDSBSCORECARD SET NRPERIOD='$donem',NRYEAR='$yil'");
$guncelle = pg_query($db, $sql);
if(!$sql){ ---- postgresql cümleciğinin sağlanmadığı durumda ...
echo '<font size="2" color="darkred">
Kayit Guncelleme Basarisiz..!
</font>';
} else { ---- postgresql cümleciğinin sağlandığı durumda...
echo '<font size="2" color="lightgreen">
Kayit Basariyla Guncellendi..
</font>';
}
pg_close($db);
}
?> ---PHP kodunun bittiğini gösterir
</td>
</tr>
</table>
</form>
</body>
<form method="post" action="webPHP.php">--- form etiketinin tanımında metod tipinin post olarak tanımlanması ayrıca action ayarının form üzerindeki işlemlerin hangi php sayfasından beslendiğini gösterdiği için bu ayara dikkat etmek gerekir. Benim bu uygulamamda html kodu ile php kodu içiçe olduğundan sayfayı kendi içine post ettiğimden üzerinde çalıştığım dosyanın uzantısı php olacaktır. Böylece üzerinde çalıştığım dosyanın adını yazmam gerekiyor.
<table border="1" cellspacing="2" cellpadding="2">
<tr style="height:5px;">
<td style="height:5px;">
<font size="2" color="lightgreen">
<label for="ok"><?php echo $msg; ?></label> --- label nesnesinin tanımlanması ve php kodu ile değişkenin label nesnesine tanımlanması
</font>
</td>
<td style="height:5px;">
<font size="3" color="darkred"> Giriş için Başlık Tanımı</font>
</td>
</tr>
<tr width="%100">
<td width="%20">Yil:</td>
<td width="%80">
<select name="yillar" id="id"> ----- combobox nesnesinin tanımlanması id="id" olmasına dikkat edilir.
<option id="0">Lutfen yil seciniz</option> --- combobox ilk satırının ayarlanması (id="0" olmasına dikkat edilir.)
<?php
$sql=pg_query("SELECT * FROM dynyil ORDER BY yil");----sql ifadesinin $sql değişkenine bağlanması (<?php --- ?> arasına combox html kodunun içine yazılır.)
while ($rows = pg_fetch_array($sql)) ---- $sql değişkenine atanan postgresql cümleciğinin fieldlara ayrılarak teker teker $rows değişkenine atanması
{
$id=$rows['oid']; --- $rows değişkeninin tuttuğu postgresql cümleciğinden istenen alanların değişkenlere aktarılması
$yil=$rows['yil'];
?>
<option id="<?php echo $id ?>"> <?php echo $yil ?></option> ---- değişkene bağlı istenen fieldların combobox'da listelenmesi (burada da $id ' e dikkat edilir.)
<?php
}
$selectedyil=$_POST['yillar'];----- burada kullanıcının combobox'ta güncel olarak seçmiş olduğu kayıt $selectedyil değişkeninde tutulur
?> ---PHP kodunun bittiğini gösterir
</select>
</td>
</tr>
<tr width="%100">
<td width="%20">Donem:</td>
<td width="%80">
<select name="aylar" id="iday">
<option id="0">Lutfen ay seciniz</option>
<?php
$sql=pg_query("SELECT * FROM dynay ORDER BY aylar asc");
while ($rows = pg_fetch_array($sql))
{
$id=$rows['oid'];
$ay=$rows['aylar'];
?>
<option id="<?php echo $id ?>"> <?php echo $ay ?></option>
<?php
}
$selecteday=$_POST['aylar'];
?>
</select>
</td>
</tr>
<tr width="%100">
<td width="%20"></td>
<td width="%80">
<input type="submit" name="guncelle" value="Guncelle"> --- button nesnesinin tanımlanması burada name'e dikkat edilir.
<?php --- PHP kodunun başladığını gösterir
if(isset($_POST['guncelle']))--- button'a tıklandığında yapılacaklar
{
$yil=$selectedyil; --- combobox'tan seçilen kaydın $yil değişkenine aktarılması
$donem=$selecteday;
$sql=pg_query("UPDATE STDSBSCORECARD SET NRPERIOD='$donem',NRYEAR='$yil'");
$guncelle = pg_query($db, $sql);
if(!$sql){ ---- postgresql cümleciğinin sağlanmadığı durumda ...
echo '<font size="2" color="darkred">
Kayit Guncelleme Basarisiz..!
</font>';
} else { ---- postgresql cümleciğinin sağlandığı durumda...
echo '<font size="2" color="lightgreen">
Kayit Basariyla Guncellendi..
</font>';
}
pg_close($db);
}
?> ---PHP kodunun bittiğini gösterir
</td>
</tr>
</table>
</form>
</body>
PHP de PostgreSql Veritabanına Bağlanma
PHP de PostgreSql Veritabanına Bağlanmak:
PHP kodu HTML koduna entgre kullanılabilen esnek bir dildir. php kodu <?php ---- ?> etiketleri arasına yazılır. Aşağıda görüldüğü gibi öyle kullanılmıştır. Bu etiketler sayesinde php kodunu html kodu içerisinde gömülü ve aynı zamanda html kodundan bağımsız çalışacak şekilde kullanabiliyoruz.
PostgreSql Veritabanına Bağlanma Örneği:
<?php
$host = "host=*.*.*.*"; --- uzak veritabanının sunucu adresinin host değişkenine bağlanması
$port = "port=5432"; --- port ayarlama
$dbname = "dbname=veritabanı_adi";---veritabanı adının dbname değişkenine bağlanması
$credentials = "user=***** password=******";---veritabanına erişim bilgilerinin tanımlanması
$db = pg_connect( "$host $port $dbname $credentials" );--- veritabanı bağlantı bilgilerinin $db değişkenine tanımlanması
if(!$db) // veritabanına bağlanma durumunu kontrol et
{
echo "Error : Unable to open database\n"; ---bağlanamama durumunda echo ile ekrana uyarı yazdırma
} else {
$msg="OK"; --- veritabanına başarılı şekilde bağlanma durumunda label nesnesine aktarılmak üzere $msg değişkenine "OK" mesajı tanımlama
}
?> --- HTML tasarım kodlarının içerisindeki php kodunun bittiğini gösterir.
8 Eylül 2016 Perşembe
SQL'de Join, Update ve En Son Eklenen Kaydın Döndürülmesi
SQL'de Join ve Update Birlikte Kullanımı:
Elimizde WFPROCATTRIB adında bir tablo olsun. Bu tablonun NMSTRING adındaki kolon datalarını DYNANAFORM ve WFPROCATTRIB adlarındaki tablolara bağlı olarak güncellemek istiyoruz. Bunun için UPDATE sorgumuzun içerisinde DYNANAFORM ve WFPROCATTRIB adlarındaki tabloların JOIN sorgusunu kullanmamız gerekiyor. Bu işlemi yapabilmek için WFPROCATTRIB adındaki tablonun güncellemek istediğimiz NMSTRING adındaki kolonu aşağıda görüldüğü gibi direkt WFPROCATTRIB,DYNANAFORM ve WFPROCATTRIB adlarındaki bu 3 tablonun birbirine bağlı olduğu JOIN sorgusunun döndürdüğü değerlerle güncelleyebiliriz. Aynı zamanda WFPROCATTRIB adındaki tablonun UPDATE sorgusuna başka bir tabloya dayalı bir koşul yazmak istediğimizde UPDATE set ayarından sonra FROM ile devam ettirerek aşağıdaki örnekte olduğu gibi WFPROCESS adındaki tabloya atayacağımız koşula göre UPDATE sorgumuzu istediğimiz bir koşula göre yazabiliriz.
UPDATE WFPROCATTRIB WFATB set NMSTRING=(SELECT FIRMAADI FROM DYNANAFORM DYNFRM JOIN WFPROCESS WFPRS ON DYNFRM.SURECID=WFPRS.IDPROCESS JOIN WFPROCATTRIB WFATB ON WFPRS.IDOBJECT=WFATB.IDPROCESS ORDER BY SURECID DESC LIMIT 1) FROM WFPROCESS WFPRS WHERE WFATB.CDATTRIBUTE=24 AND WFATB.IDPROCESS=(SELECT WFPRS.IDOBJECT FROM DYNANAFORM DYNFRM JOIN WFPROCESS WFPRS ON DYNFRM.SURECID=WFPRS.IDPROCESS JOIN WFPROCATTRIB WFATB ON WFPRS.IDOBJECT=WFATB.IDPROCESS ORDER BY SURECID DESC LIMIT 1);
SQL'de Tabloya Eklenen En Son Kaydı Döndürmek:
SELECT WFPRS.IDOBJECT FROM DYNANAFORM DYNFRM JOIN WFPROCESS WFPRS ON DYNFRM.SURECID=WFPRS.IDPROCESS JOIN WFPROCATTRIB WFATB ON WFPRS.IDOBJECT=WFATB.IDPROCESS ORDER BY SURECID DESC LIMIT 1
5 Eylül 2016 Pazartesi
PostgreSql'de Trigger ile Update İşlemleri
PostgreSql'de Trigger Yazmak:
CREATE TRIGGER check_update
AFTER UPDATE
ON denemetable
FOR EACH ROW
EXECUTE PROCEDURE check_account_update();
Burada "denemetable" adındaki tabloyu update ettiğimizde trigger, "check_account_update()" adlı fonksiyonu tetikler.
After Update : "denemetable" adlı tabloda güncelleme yapıldıktan 'sonra' "check_account_update()" adlı fonksiyon tetiklenir.
Before Update : "denemetable" adlı tabloda güncelleme yapılmadan 'önce' "check_account_update()" adlı fonksiyon tetiklenir.
After Insert : "denemetable" adlı tabloya kayıt ekleme yapıldıktan 'sonra' "check_account_update()" adlı fonksiyon tetiklenir.
Before Insert : "denemetable" adlı tabloya kayıt ekleme yapılmadan 'önce' "check_account_update()" adlı fonksiyon tetiklenir.
After Delete : "denemetable" adlı tablodan kayıt silme işlemi yapıldıktan 'sonra' "check_account_update()" adlı fonksiyon tetiklenir.
Before Delete : "denemetable" adlı tablodan kayıt silme işlemi yapılmadan 'önce' "check_account_update()" adlı fonksiyon tetiklenir.
Aynı Anda Birden Fazla Update Sorgusunu Çalıştıran "check_account_update()" Trigger Fonksiyonu:
CREATE OR REPLACE FUNCTION fonks() RETURNS TRIGGER AS $update$
DECLARE BEGIN
update STSCSTRUCTARGET set vlperup=(vlpoints*100/4) where (cdrangeitem=203 or cdrangeitem=200 or cdrangeitem=201 or cdrangeitem=202 or cdrangeitem=204);
Update STSCSTRUCTARGET set cdrangeitem=204 where vlperup<40 and (cdrangeitem=203 or cdrangeitem=200 or cdrangeitem=201 or cdrangeitem=202 or cdrangeitem=204);
Update STSCSTRUCTARGET set cdrangeitem=203 where vlperup>=40 and vlperup<70 and (cdrangeitem=203 or cdrangeitem=200 or cdrangeitem=201 or cdrangeitem=202 or cdrangeitem=204);
Update STSCSTRUCTARGET set cdrangeitem=202 where vlperup>=70 and vlperup<90 and (cdrangeitem=203 or cdrangeitem=200 or cdrangeitem=201 or cdrangeitem=202 or cdrangeitem=204);
Update STSCSTRUCTARGET set cdrangeitem=201 where vlperup>=90 and vlperup<115 and (cdrangeitem=203 or cdrangeitem=200 or cdrangeitem=201 or cdrangeitem=202 or cdrangeitem=204);
Update STSCSTRUCTARGET set cdrangeitem=200 where vlperup>=115 and (cdrangeitem=203 or cdrangeitem=200 or cdrangeitem=201 or cdrangeitem=202 or cdrangeitem=204);
update STSCSTRUCTARGET set VLPERUPACCUM=(vlpointsaccum*100/4) where (cdrangeitemaccum=203 or cdrangeitemaccum=200 or cdrangeitemaccum=201 or cdrangeitemaccum=202 or cdrangeitemaccum=204);
Update STSCSTRUCTARGET set cdrangeitemaccum=204 where VLPERUPACCUM<40 and (cdrangeitemaccum=203 or cdrangeitemaccum=200 or cdrangeitemaccum=201 or cdrangeitemaccum=202 or cdrangeitemaccum=204);
Update STSCSTRUCTARGET set cdrangeitemaccum=203 where VLPERUPACCUM>=40 and VLPERUPACCUM<70 and (cdrangeitemaccum=203 or cdrangeitemaccum=200 or cdrangeitemaccum=201 or cdrangeitemaccum=202 or cdrangeitemaccum=204);
Update STSCSTRUCTARGET set cdrangeitemaccum=202 where VLPERUPACCUM>=70 and VLPERUPACCUM<90 and (cdrangeitemaccum=203 or cdrangeitemaccum=200 or cdrangeitemaccum=201 or cdrangeitemaccum=202 or cdrangeitemaccum=204);
Update STSCSTRUCTARGET set cdrangeitemaccum=201 where VLPERUPACCUM>=90 and VLPERUPACCUM<115 and (cdrangeitemaccum=203 or cdrangeitemaccum=200 or cdrangeitemaccum=201 or cdrangeitemaccum=202 or cdrangeitemaccum=204);
Update STSCSTRUCTARGET set cdrangeitemaccum=200 where VLPERUPACCUM>=115 and (cdrangeitemaccum=203 or cdrangeitemaccum=200 or cdrangeitemaccum=201 or cdrangeitemaccum=202 or cdrangeitemaccum=204);
RETURN NULL;
END;
$update$ LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
CREATE TRIGGER check_update
AFTER UPDATE
ON denemetable
FOR EACH ROW
EXECUTE PROCEDURE check_account_update();
Burada "denemetable" adındaki tabloyu update ettiğimizde trigger, "check_account_update()" adlı fonksiyonu tetikler.
After Update : "denemetable" adlı tabloda güncelleme yapıldıktan 'sonra' "check_account_update()" adlı fonksiyon tetiklenir.
Before Update : "denemetable" adlı tabloda güncelleme yapılmadan 'önce' "check_account_update()" adlı fonksiyon tetiklenir.
After Insert : "denemetable" adlı tabloya kayıt ekleme yapıldıktan 'sonra' "check_account_update()" adlı fonksiyon tetiklenir.
Before Insert : "denemetable" adlı tabloya kayıt ekleme yapılmadan 'önce' "check_account_update()" adlı fonksiyon tetiklenir.
After Delete : "denemetable" adlı tablodan kayıt silme işlemi yapıldıktan 'sonra' "check_account_update()" adlı fonksiyon tetiklenir.
Before Delete : "denemetable" adlı tablodan kayıt silme işlemi yapılmadan 'önce' "check_account_update()" adlı fonksiyon tetiklenir.
Aynı Anda Birden Fazla Update Sorgusunu Çalıştıran "check_account_update()" Trigger Fonksiyonu:
CREATE OR REPLACE FUNCTION fonks() RETURNS TRIGGER AS $update$
DECLARE BEGIN
update STSCSTRUCTARGET set vlperup=(vlpoints*100/4) where (cdrangeitem=203 or cdrangeitem=200 or cdrangeitem=201 or cdrangeitem=202 or cdrangeitem=204);
Update STSCSTRUCTARGET set cdrangeitem=204 where vlperup<40 and (cdrangeitem=203 or cdrangeitem=200 or cdrangeitem=201 or cdrangeitem=202 or cdrangeitem=204);
Update STSCSTRUCTARGET set cdrangeitem=203 where vlperup>=40 and vlperup<70 and (cdrangeitem=203 or cdrangeitem=200 or cdrangeitem=201 or cdrangeitem=202 or cdrangeitem=204);
Update STSCSTRUCTARGET set cdrangeitem=202 where vlperup>=70 and vlperup<90 and (cdrangeitem=203 or cdrangeitem=200 or cdrangeitem=201 or cdrangeitem=202 or cdrangeitem=204);
Update STSCSTRUCTARGET set cdrangeitem=201 where vlperup>=90 and vlperup<115 and (cdrangeitem=203 or cdrangeitem=200 or cdrangeitem=201 or cdrangeitem=202 or cdrangeitem=204);
Update STSCSTRUCTARGET set cdrangeitem=200 where vlperup>=115 and (cdrangeitem=203 or cdrangeitem=200 or cdrangeitem=201 or cdrangeitem=202 or cdrangeitem=204);
update STSCSTRUCTARGET set VLPERUPACCUM=(vlpointsaccum*100/4) where (cdrangeitemaccum=203 or cdrangeitemaccum=200 or cdrangeitemaccum=201 or cdrangeitemaccum=202 or cdrangeitemaccum=204);
Update STSCSTRUCTARGET set cdrangeitemaccum=204 where VLPERUPACCUM<40 and (cdrangeitemaccum=203 or cdrangeitemaccum=200 or cdrangeitemaccum=201 or cdrangeitemaccum=202 or cdrangeitemaccum=204);
Update STSCSTRUCTARGET set cdrangeitemaccum=203 where VLPERUPACCUM>=40 and VLPERUPACCUM<70 and (cdrangeitemaccum=203 or cdrangeitemaccum=200 or cdrangeitemaccum=201 or cdrangeitemaccum=202 or cdrangeitemaccum=204);
Update STSCSTRUCTARGET set cdrangeitemaccum=202 where VLPERUPACCUM>=70 and VLPERUPACCUM<90 and (cdrangeitemaccum=203 or cdrangeitemaccum=200 or cdrangeitemaccum=201 or cdrangeitemaccum=202 or cdrangeitemaccum=204);
Update STSCSTRUCTARGET set cdrangeitemaccum=201 where VLPERUPACCUM>=90 and VLPERUPACCUM<115 and (cdrangeitemaccum=203 or cdrangeitemaccum=200 or cdrangeitemaccum=201 or cdrangeitemaccum=202 or cdrangeitemaccum=204);
Update STSCSTRUCTARGET set cdrangeitemaccum=200 where VLPERUPACCUM>=115 and (cdrangeitemaccum=203 or cdrangeitemaccum=200 or cdrangeitemaccum=201 or cdrangeitemaccum=202 or cdrangeitemaccum=204);
RETURN NULL;
END;
$update$ LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
4 Eylül 2016 Pazar
CSV Dosyasını PostgreSql'e Import Etmek
CSV dosyasını postgreSql'e import etmek için kod ve PgAdmin paneli üzerinden farklı olarak iki yol izlenerek yapılabilir.
PgAdmin paneli üzerinden CSV Dosyasını İmport Etmek:
bu işlem için csv dosyasının başlığındaki (header kısmı) isimler tablonun column isimlerini oluşturacak şekilde yeni bir tablo oluşturulur. oluşturulacak yeni tablonun kolon sayısı csv dokümanındaki header isimlerinin sayısı kadar olmalıdır. yeni tablo oluştururken csv'nin header ksımındaki isimlerin altındaki verilerin tipine göre column veri tipi ayarlanır. daha sonra yeni oluşturulan tablonun üzerine sağ tıklanarak gelen ekrandaki "import" sekmesine tıklanır. Açılan pencerede Fileoptions tabının; Filename kısmı için import etmek istediğimiz CSV dosyasının yolu seçilir, Format için csv seçeneği seçilir, Encoding için WIN1251 seçeneği seçilir. Daha sonra alttaki sekmelerden devam edilir,Columns tabında ekranda yer alan kolon isimlerinin seçili olması gerekir, Misc.Option tabının Header ksımı tıklanır, Delimiter kısmı CSV dosyasındaki verilerin hangi işaretlerle birbirinden ayrıldığına dair ayarlama yapılır, csv dosyasındaki veriler arasında ";" "," "tab" bunlardan hangisi ile dolaşabiliyorsak onu işaretleyerek import edebiliriz.
SQL Editör üzerinden CSV Dosyasını Tabloya İmport Etmek:
CREATE TABLE denemetable (
isim char(50)
yas integer
cinsiyet char(20)
meslek char(50)
);
csv header'daki verilere göre yeni tablo oluşturulur.
COPY denemetable FROM 'C:/Users/dell-/Desktop/Satınalma.csv' DELIMITER ',' CSV HEADER;
import edilmek istenen CSV dosyasının pc deki yolu yukarıdaki koddaki gibi belirtilerek yeni oluşturduğumuz tabloya kopyalanır. DELİMİTER csv dosyasındaki verilerin hangi karaketerlerle ayrıldığı göstermek için kullanılır.
8 Ağustos 2016 Pazartesi
C# ile Exceldeki Veriyi Güncellemek
C# ile excel'deki verinin nasıl güncellenebileceğinin kodu:
OleDbConnection baglanti = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + txtDosyaYolu.Text.Trim() + "; Extended Properties='Excel 12.0 xml;HDR=NO;'");// C# üzerinden excel dökümanına bağlanır..
baglanti.Open();// bağlantıyı açar..
OleDbCommand komut = new OleDbCommand("UPDATE [Sayfa2$A1:A1] SET F1=" + "'" + txtSyn.Text + "'", baglanti);// Excel dökümanının Sayfa2 A1 hücresinde yer alan değerin güncellenmesi... F1 ise güncellenecek olan hücrenin ait olduğu kolonun ismini oluşturur.
komut.ExecuteNonQuery();//komutun yürütülmesi..
//OleDbDataAdapter da = new OleDbDataAdapter("UPDATE [Sayfa2$A2:A2] SET F1=" + "'" + txtSyn.Text + "'", baglanti);// aynı güncelleme işleminin OleDataAdapter nesnesi ile yapılması..
OleDbDataAdapter da2 = new OleDbDataAdapter("SELECT * FROM [Sayfa2$]", baglanti);//Belirtilen excel sayfasında güncelleme işlemi yapıldıktan sonra excel verisinin tablo ile birlikte 'Select' sorgusu ile çağrılması..
DataTable dt = new DataTable();// excel'den update edilmiş hali ile gelen verilerin DataTable nesnesine aktarılması...
OleDbConnection baglanti = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + txtDosyaYolu.Text.Trim() + "; Extended Properties='Excel 12.0 xml;HDR=NO;'");// C# üzerinden excel dökümanına bağlanır..
baglanti.Open();// bağlantıyı açar..
OleDbCommand komut = new OleDbCommand("UPDATE [Sayfa2$A1:A1] SET F1=" + "'" + txtSyn.Text + "'", baglanti);// Excel dökümanının Sayfa2 A1 hücresinde yer alan değerin güncellenmesi... F1 ise güncellenecek olan hücrenin ait olduğu kolonun ismini oluşturur.
komut.ExecuteNonQuery();//komutun yürütülmesi..
//OleDbDataAdapter da = new OleDbDataAdapter("UPDATE [Sayfa2$A2:A2] SET F1=" + "'" + txtSyn.Text + "'", baglanti);// aynı güncelleme işleminin OleDataAdapter nesnesi ile yapılması..
OleDbDataAdapter da2 = new OleDbDataAdapter("SELECT * FROM [Sayfa2$]", baglanti);//Belirtilen excel sayfasında güncelleme işlemi yapıldıktan sonra excel verisinin tablo ile birlikte 'Select' sorgusu ile çağrılması..
DataTable dt = new DataTable();// excel'den update edilmiş hali ile gelen verilerin DataTable nesnesine aktarılması...
Kaydol:
Kayıtlar (Atom)