nvarchar alanla int alanı karşılaştırmışsın. her iki tablodaki karşılık gelen her iki hücrenin aynı tipte olması lazım.. join yerine eski usül select kullanabilirsin select a. hede, b. hodo from tbl1 as a, tbl2 as b where a. cmssayfaid=b. cmssayfaid diye gider. :|

nvarchar alanla int alanı karşılaştırmışsın. her iki tablodaki karşılık gelen her iki hücrenin aynı tipte olması lazım.. join yerine eski usül select kullanabilirsin select a. hede, b. hodo from tbl1 as a, tbl2 as b where a. cmssayfaid=b. cmssayfaid diye gider. Bütün değişkenleri kontrol ettim lakin yine de byle bir hata veriyor. Değişkenlerin sql sorgusunda yazımı yanlış herhalde. ontedi tarafından 06/Haz/15 13:52 tarihinde düzenlenmiştir Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.

Arkadaşlar bir içerik ynetim sistemi yazıyorum, sistemde kullanıcı rolleri, ynetim sayfaları ve bu sayfalardaki rollerin yetkilerini tutuğum tablolar mevcut Sayfaların bilgisinin tutulduğu tablo Rollere ait sayfa yetkilerinin tutulduğu tablo Sorguyu şyle yazınca sorun yok DECLARE @SQL nvarchar(255); DECLARE @strSutun_Adi NVARCHAR(255) = 'listele' SET @SQL = 'SELECT ' + @strSutun_Adi + ' from tblCms_Rollerin_Sayfalari WHERE cms_sayfa_ID = 1 AND rol_ID = 1' EXECUTE Çıkan sonuç (1 numaralı rolun, 1 numaralı sayfada listele yetkisi) join ile biraz daha karmaşıklaştırılıyor DECLARE @strSutun_Adi NVARCHAR(255) = 'listele'; DECLARE @strSorgu nvarchar(255); SET @strSorgu = 'SELECT ' + '' + @strSutun_Adi + ' ' + 'FROM ' + 'tblSayfalar AS S ' + 'INNER JOIN ' + 'tblRollerin_Sayfalari AS RS ' + 'ON ' + 'S. cms_sayfa_ID = RS. cms_sayfa_ID ' EXECUTE Yapmak istediğim ise şu, sorguyu yazdım lakin tuhaf bir hata almaktayım. rol_ID, sayfa_adresi, sutun_adi değişkenlerini parametre olarak yollamak istediğimde DECLARE @intRol_ID INT = 1; DECLARE @strSayfa_Adresi NVARCHAR(255) = 'ayarlar.aspx'; DECLARE @strSutun_Adi NVARCHAR(255) = 'listele'; DECLARE @strSorgu nvarchar(255); SET @strSorgu = 'SELECT ' + '' + @strSutun_Adi + ' ' + 'FROM ' + 'tblSayfalar AS S ' + 'INNER JOIN ' + 'tblRollerin_Sayfalari AS RS ' + 'ON ' + 'S. cms_sayfa_ID = RS. cms_sayfa_ID ' + 'WHERE ' + 'S. sayfa_adresi = ' + @strSayfa_Adresi + ' ' + 'AND ' + 'RS. rol_ID = ' + @intRol_ID EXECUTE Çıkan hata Conversion failed when converting the nvarchar value 'SELECT listele FROM tblSayfalar AS S INNER JOIN tblRollerin_Sayfalari AS RS ON S. cms_sayfa_ID = RS. cms_sayfa_ID WHERE S. sayfa_adresi = ayarlar.aspx AND RS. rol_ID = ' to data type int. zetle sylersek, SQL'e "rol_ID, sayfa_adresi ve sutun_adi" değerlerini gnderip sonuç almak, lkain hatadan türü bir şey yapamadım. ontedi tarafından 06/Haz/15 13:53 tarihinde düzenlenmiştir Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.