Sql Server’lar arası bağlantı oluşturma

Bazı durumlarda iki database server’ı üzerinde çalışmamız gerekebiliyor bu gibi durumlarda sorgumuz içinde diğer server ‘daki bir kolona erişmek durumunda kalabiliriz.Eğer Server’ların birbirine erişme izni varsa aşağıdaki sorguyla server’lar arası bağlantı oluşturulabilir.

Database Server Adı:Server1 ,Database Adı:Database1, Tablo Adı:Table1 olsun

Bulunduğumuz serverdan yazacağımız sorgu şöyle olmalı

Select * from [Server1].Database1.dbo.Table1

Sql Trigger

Bazı durumlarda bir tabloda sorgulama yaptıktan sonra istediğimiz sorguların tetiklenmesi isteyebiliriz.Bu gibi durumlarda sql trigger kullanabiliriz.Trigger’ları istediğimiz tablo üzerinde kullanabilir ve bütün dml(Select,Insert,Update,Delete) işlemlerinin ardından tetiklenmesini sağlayabiliriz.

Create Trigger [Trigger Adı] ON [İşlem Yapılan Tablo Adı]

FOR [DML İFADESİ(Select,Insert,Update,Delete)]

AS

--İşlem yapılan tablodan bize lazım olan değişkenleri tanımladığımız alan

Declare @Ad nvarchar(30)
Declare @Soyad nvarchar(30)
..

select @Ad=Ad , @Soyad=Soyad from (inserted veya deleted)

-- Burada tanımladığımız değişkenlerle yapmak istediğimiz işlemler.

Örnek Trigger, update olan bir datayı kontrol edip aktif durumu 1 olduğunda mail service’in kullandığı veritabanını insert işlemi yapıyoruz.

CREATE TRIGGER trg_MailYolla ON  contact 
FOR UPDATE
AS

declare @AdSoyad nvarchar(250)
declare @Mail nvarchar(50)
declare @EvTel nvarchar(20)
declare @Aktif int
select @AdSoyad=(Ad+' '+Soyad),@Mail=email,@EvTel=EvTel,@Aktif=Aktif from inserted 

if(@Aktif=1)

begin

declare @MailGidecek nvarchar(100)

declare @Body nvarchar(max)='

<table>
<tr>
<td>Ad Soyad</td>
<td>'+@AdSoyad+'</td>
</tr>
<tr>
<td>Email</td>
<td>'+@Mail+'</td>
</tr>
<tr>
<td>Ev Telefonu</td>
<td>'+@EvTel+'</td>
</tr>
</table>'

insert into MailService

select 'aaa@hotmail.com' , ''+@MailGidecek+'', @Body
end 

Html Tag’i temizleyen fonksiyonlar

Bazı durumlarda bir siteden veya başka bir şekilde elde ettiğimiz, içinde html taglerinin bulunduğu string ifadeleri temizlemek isteyebiliriz bu durumlarda kullanılabilicek birkaç method aşağıda mevcuttur.

1.Method(Extension)

public static string StripHtmlTags(this string str)
        {
            if (str == null) return null;

            char[] array = new char[str.Length];
            int arrayIndex = 0;
            bool inside = false;

            for (int i = 0; i < str.Length; i++)
            {
                char let = str[i];
                if (let == '<')
                {
                    inside = true;
                    continue;
                }
                if (let == '>')
                {
                    inside = false;
                    continue;
                }
                if (!inside)
                {
                    array[arrayIndex] = let;
                    arrayIndex++;
                }
            }
            return new string(array, 0, arrayIndex);
        }

2.Method

public string taglari_at(string metin)
    {
        metin = Regex.Replace(metin, "<[^>]*>", string.Empty);
        metin = metin.Replace("<p>", "");
        metin = metin.Replace("</p>", "");
        return metin;
    }

Satır sayısını döndüren sorgu

Herhangi bir sorgumuzdaki satır sayısını döndürmek istiyorsak basit bir subquery ile bu sorguyu yazabiliriz.Örneğin satır sayısını döndürmek istediğimiz sorgu aşağıdaki gibi olsun , eğer sorgumuzda group by kullanmasaydık bu durumda satır sayısını bulmak için sadece count fonksiyonunun içine kolon ismini yazmamız yeterliydi.

select count(tarih) from tbl_Ogrenciler where ogrno=10006

Ancak sorguda group by kullanıp aynı değerlere göre filtreleme uyguluyorsak satır sayısını döndürmek için yazmamız gereken sorgu aşağıdaki gibi olmalıydı.

select tarih from 
tbl_Ogrenciler where ogrno=10006 group by tarih
select count(*)
 from(select tarih from tbl_Ogrenciler where ogrno=10006 group by tarih)
 as satirsayisi

UpdatePanel JavaScript Problemi

Bazı durumlarda updatepanel içindeki javascriptler postback durumundan sonra çalışmaz,böyle bir sorunla karşılaşırsanız çözüm yöntemlerinden biri javascript kodunuzu aşağıdaki gibi “pageLoad” fonksiyonunu içine yazmaktır.

<script>
function pageLoad(sender, args) {
            jQuery(function ($) {
                $("#date1").mask("99/99/9999");
            });
        }
</script>