Forum
Merhaba Arkadaşlar,
Aşağıdaki cümleyi SQL Management Studio içinden çok rahatlıkla çalıştırıp çok hızlı bir şekilde sonuç alıyorum. Ancak ben bu cümleyi codebehind içinden çalıştırmak istiyorum ve null değer dönüyor. ne yapabilirim?
DECLARE @CARIBAKIYE TABLE (TARIH DATETIME,INC_KEY_NUMBER INT, BELGE_NO VARCHAR(15), ACIKLAMA VARCHAR(50), BORC FLOAT,ALACAK FLOAT, BAKIYE FLOAT)
DECLARE
@BAKIYE FLOATSET @BAKIYE = 0
INSERT
INTO @CARIBAKIYESELECT TARIH DATETIME ,INC_KEY_NUMBER, BELGE_NO, ACIKLAMA, BORC,ALACAK, null
FROM TBLCAHAR WHERE CARI_KOD='AP21307047'
ORDER BY TARIH,INC_KEY_NUMBER
UPDATE
@CARIBAKIYESET @BAKIYE = BAKIYE = @BAKIYE + (BORC-ALACAK)
FROM @CARIBAKIYE
SELECT TARIH,BELGE_NO,ACIKLAMA,BORC,ALACAK,(CASE WHEN BAKIYE > 0 THEN BAKIYE ELSE 0 END)BORCBAKIYE,
(CASE WHEN BAKIYE < 0 THEN BAKIYE-(BAKIYE*2) ELSE 0 END)ALACAKBAKIYE
FROM @CARIBAKIYE
ORDER BY TARIH,INC_KEY_NUMBER ASC
------------------------------------
c# codebehind
------------------------------------
DataTable dth = new DataTable();
OleDbConnection con = conn.Baglanti();
con.Open();
string sql = "...." //yukarıdaki kod
OleDbDataAdapter dha = new OleDbDataAdapter(sql, con);
dha.Fill(dth);
---------------------------------------
Teşekkürler,
SQL kodunu SQL'de bir sp olarak hazirlayin.
C# tarafindan da bu stored procedure parametrelerine sadece gerekli degerleri gonderin yeter.
http://www.codeproject.com/KB/cs/simplecodeasp.aspx adresinde adim adim bir ornegini referans alarak uygulayabilirsin.
Mesut Aladag.
Microsoft MVP - MCT
Hocam ilginize teşekkür ederim. Bu yöntemi biliyorum. Proje içinde çok fazla bu tür sql sorgularına ihtiyacım var. Dolayısıyla her biri için sp oluşturmak çok mantıklı gelmedi bana. Bu kodun c# içinde oledb veya herhangi bir nesne üzerinden çalıştırılması mümkün müdür?
Teşekkürler,
sorgudaki özel karaktterlerden dolayı null dönüyor olabilir.
mantıklı olan Mesut hocamın dedigi gibi procedure yazmaktir ama madem böle istiyorsunuz..
sorgunuzu bir txt dosyasına kaydedin. ve c#ta streamreader ile hepsini bir stringe atın. kendisi kaçış karakterlerini oluşturarak tam istediginiz sorguyu alacak. o zaman sorguyu çalıştırabilirsiniz.
şu makalede gayet açık bir şekilde anlatılmış.