Tuesday, January 20, 2009

Call A Javascript Function With Silverlight

ScriptObject script = (ScriptObject)HtmlPage.Window.GetProperty("ChangeImg");
script.InvokeSelf();

İlk satırda sayfasımızda yer alan ChangeImg adlı fonksiyona erişiyoz ve alt satırda bu fonksiyonu çalıştırıyoruz.

Eğer parametre göndermek istersek;
script.InvokeSelf("par1","par2");

Monday, January 19, 2009

Read A Xml Document With Silverlight(XLINQ)

private void btnSend_Click(object sender, RoutedEventArgs e)
{
string uri = Application.Current.Host.Source.AbsoluteUri;
int index = uri.IndexOf("/ClientBin");
uri = uri.Substring(0, index);
txtAd.Text = uri;
WebClient client = new WebClient();
client.DownloadStringAsync(new Uri(uri+"/data.xml"));
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
}

okuma tamamlandığında ise;
void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
try
{
XElement element = XElement.Parse(e.Result);
txtAd.Text = (from x in element.Descendants("musteri")
select x.Element("ad").Value).First();
}
catch (Exception ex)
{
System.Windows.Browser.HtmlPage.Window.Alert(ex.InnerException.Message);
}
}

Silverlight Send Parameter And Start Random Page

string sayfaAdı=e.InitParams["ad"]
var myPage=(UserControl)this.GetType().Assembly.CreateInstance(this.GetType().Namespace + "." + ad);
this.RootVisual = myPage;

veya daha kolay olarak girilen parametreye sayfayı belirleriz.
switch (ad)
{
case "Page1":
this.RootVisual = new Page1();
break;
case "Page2":
this.RootVisual = new Page2();
break;
default:
this.RootVisual = new Page();
}

SilverLight and App Class

((App)Application.Current).YourMethod()

Silverlight ve font embed

Fontu projenize ekledikten sonra fontun Visual Studio'da özellikler kısmına gelip "Build Action" kısmından "Resources" i seçiniz.
Daha sonra bu fontu kullanacağımız elemente aşğıdakini yazınız;
FontFamily="consola.ttf#Consolas"

Silverlight ve fullscreen

Application.Current.Host.Content.IsFullScreen = true;

Sunday, January 18, 2009

Silverlight And Path Files

var path = new Uri("http://" + System.Windows.Browser.HtmlPage.Document.DocumentUri.Host + "/videos/" + cmb_videos.SelectedItem.ToString());

SilverLight ve Wcf web service

protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses)
{
return base.CreateServiceHost(serviceType, new Uri[] { new Uri("
http://www.yoursite.com/Service.svc") });
}

Service sınıfınıda ServiceHostFactory sınıfından türetin.

The "function name" is not a recognized built-in function name'.

myfunc () instead dbo.myunc () type In SqlServer

The current database compatibility level does not support managed objects

When you receive this error in Sql Server Run the following sp. 'Northwind' database, write the name of your own instead.

exec sp_dbcmptlevel 'Northwind', 90

Saturday, January 17, 2009

Trigger and Cursor

create trigger DeleteTrg
on musteri
instead of delete
as
declare @myid int;
declare id_cursor cursor
for
select ID from deleted;
open id_cursor;
fetch next from id_cursor into @myid;
while @@fetch_status=0
begin
print @myid;
fetch next from id_cursor into @myid;
end
close id_cursor;
deallocate id_cursor;

İnstead of triggeri ile musteri tablomuzda silinen musterilerin ID lerini sqlserverda ekrana basıyoruz.

Random Five Record With SqlServer

select top 5 ID,ad,soyad,newID() as random from musteri order by random

Friday, January 16, 2009

linq and left join

var datas = from m in db.Musteris
join n in db.Urunlers
on m.ID equals n.musteriID into records
from r in records.DefaultIfEmpty()Metin Rengi
select new { Ad=m.ad, Urun=r.urun ?? "Urun Yok." };

Thursday, January 15, 2009

Sql Server Enable Full Text Searching

EXEC sp_fulltext_database 'enable'
komutu çalıştırılır.
Daha sonra ile ilgili tabloya sağ tıklanır ve full text index seçilir.

Friday, January 9, 2009

Linq ve XPathSelectElement

XPathSelectElement metodunu kullanabilmek için önce System.Xml.XPath namespace ini projeye dahil etmek gerekir.
XDocument xDocument = new XDocument(
new XElement("Musteriler",
new XElement("Musteri",
new XAttribute("meslek", "Ogretmen"),
new XElement("ad", "Engin"),
new XElement("soyad", "Guven")),
new XElement("Musteri",
new XAttribute("meslek", "Doktor"),
new XElement("ad", "Hasan"),
new XElement("soyad", "Tekin"))));

ile bir xml dokumanı oluşturuyoruz. Daha sonra;


XElement element = xDocument.XPathSelectElement("Musteriler/Musteri[@meslek='Ogretmen']");

ile mesleği öğretmen olan kaydı seçiyoruz. Eğer bu kaydın adını yazdırmak istersek
Response.Write(element.Element("ad").Value);

Eğer xml dokumanımızdaki attribute göre değilde element değerine göre yapmak isteseydik;

XElement element = xDocument.XPathSelectElement("Musteriler/Musteri[ad='Engin']");

Wednesday, January 7, 2009

Insert and Select Operations With ExecuteMethodCall

ALTER PROCEDURE MusInsert

(
@ad varchar(50),
@soyad varchar(50)
)

AS
insert into musteri(ad,soyad) values(@ad,@soyad)
select * from musteri where num=scope_identity()

Stored Proceduremiz önce veri ekliyo sonra eklenmiş olan veriyi geri gönderiyor.


[Function(Name="dbo.MusInsert")]
[ResultType(typeof(musteri))]
public IMultipleResults MusInsert([Parameter(DbType="VarChar(50)")] string ad, [Parameter(DbType="VarChar(50)")] string soyad)
{
var result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), ad, soyad);
return (IMultipleResults)result.ReturnValue;
}

Burada ResultType(typeof(musteri))] ile geri dönecek olan verinin hangi nesne tipinde olduğunu
yazmak gerekir.

Iequalitycomparer Sorting Objects

public class EqualMusteri : IEqualityComparer
{
#region IEqualityComparer Members

public bool Equals(musteri x, musteri y)
{
if ((x.ad.Trim() == y.ad.Trim()) && (x.soyad.Trim() == y.soyad.Trim()))
{
return true;
}
else
{
return false;
}
}

public int GetHashCode(musteri obj)
{
return base.GetHashCode();//important code.
}

#endregion
}
Buradan siz müşteri için kendi özel nesnenizi yazınız.