Professional Documents
Culture Documents
2 Farklı Yöntem Kullanarak Cevaplar Tablosuna Verileri Kaydttik
2 Farklı Yöntem Kullanarak Cevaplar Tablosuna Verileri Kaydttik
} sb.Append("</root>"); byte[] dizi = Encoding.UTF8.GetBytes(sb.ToString()); MemoryStream ms = new MemoryStream(dizi); XmlTextReader reader = new XmlTextReader(ms); DataSet ds = new DataSet(); ds.ReadXml(reader); Helper hlp = new Helper(); SqlParameter[] paramdizi = new SqlParameter[1] { new SqlParameter("@xml",SqlDbType.VarChar) }; paramdizi[0].Value = sb.ToString(); hlp.ExecuteNonQuery("CEVAPLARIKAYDET", CommandType.StoredProcedure, paramdizi);
} sb.Append("</Cevap>");
2. Bu yntemde de Xml ierii dorudan bir stored procedure ierisine gnderilmektedir. Stored Procedure ierii aadaki gibidir.
alter proc CEVAPLARIMIKAYDET ( @error int output, @xml varchar(500), @handler int ) as begin Begin transaction EXEC sp_xml_preparedocument @handler output, @xml /*Yukardaki procedure yardmyla gelen xml ierii okunacak duruma getiriliyor*/ create table #temp ( KullaniciID varchar(10), SoruID int, SecenekID int ) insert into #temp (KullaniciID,SoruID,SecenekID) ( SELECT KullaniciID,SoruID,SecenekID FROM OPENXML(@handler, '/Root/Cevap',2) WITH /*XML ierii okunacak duruma getiriliyor*/ ( KullaniciID varchar(10), SoruID int, SecenekID int ) ) if (@@Error<>0) begin rollback /*RaisError ('lem srasnda bir hata olutu',16,1) Hata byle gnderilebilir*/ set @error =1 end
EXEC sp_xml_removedocument @handler /*Dkman bellekten temizleniyor*/ /*Burada cursor tanmlayp temp tablo ierisindeki kaytlar teker teker dolayoruz.*/ declare @KullaniciID varchar(10) declare @SoruID int declare @SecenekID int declare c cursor for select KullaniciID,SoruID,SecenekID from #temp open c fetch NEXT from c into @KullaniciID,@SoruID,@SecenekID while @@FETCH_STATUS=0 begin insert into Cevaplar(KullaniciID,SoruID,SecenekID) values(@KullaniciID,@SoruID,@SecenekID) fetch NEXT from c into @KullaniciID,@SoruID,@SecenekID if (@@Error<>0) begin rollback /*RaisError ('lem srasnda bir hata olutu',16,1) Hata byle gnderilebilir*/ set @error =1 end end commit set @error =0 end
Flash ierisinde bu verileri okumak iin var xmlLoader:URLLoader=new URLLoader(); xmlLoader.addEventListener(Event.COMPLETE,xmlyuklendi); xmlLoader.load(new URLRequest("http://localhost:30000/Anket%20%20Kopya/SonucYukle.aspx")); var docXML:XML; var sorular:Array; var secenekler:Array; function xmlyuklendi(e:Event):void { docXML=new XML(e.target.data); docXML.ignoreWhitespace=true; sorular=new Array(docXML.Soru.length()); secenekler=new Array(docXML.Soru.Secenek.length()); for(var i=0;i<sorular.length;i++)
{ sorular[i]=[docXML.Soru[i].@ID,docXML.Soru[i].@Text]; } for(var s=0;s<secenekler.length;s++) { secenekler[s]=[docXML.Soru.Secenek[s].@ID,docXML.Soru.Secenek[s].@Text]; } } Aadaki fonksiyon dikdrtgen iziyor function BilgiYukle():void { soruNo_txt.text=soruno+1; soruMetni_txt.text=sorular[soruno][1]; var soruID=sorular[soruno][0]; var bas=100; for (var i=0;i<secenekler.length;i++) { if (secenekler[i][0]==soruID) { var rectangle:Shape = new Shape; // initializing the variable named rectangle rectangle.graphics.beginFill(Math.round( Math.random()*0xFFFFFF )); // choosing the colour for the fill, here it is red rectangle.graphics.drawRect(100, bas+i*30,secenekler[i][2]*10 ,30); // (x spacing, y spacing, width, height) rectangle.graphics.endFill(); // not always needed but I like to put it in to end the fill addChild(rectangle); // adds the rectangle to the stage var txt:TextField=new TextField(); txt.x=secenekler[i][2]*10; txt.y=bas+i*30; txt.width=200; txt.height=30; txt.text=secenekler[i][1]; addChild(txt); } } }
</object>
Okurken
displayData.width = 300; displayData.border = true; addChild(displayData); displayData.text = " < Display Flash Vars > "; var objParam:Object = LoaderInfo(this.root.loaderInfo).parameters; for (var key:String in objParam) { displayData.appendText("\n " + key + " :: " + objParam[key]); }