Cu ajutorul unui video tutorial am reusit sa creez o baza de date locala cu ajutorul lui SQLite Manager.Baza de date se numeste: "internetmanager.sqlite" si se afla in "src/db/internetmanager.sqlite".
In proiectul Flex care se numeste WebArhiv am un DataGrid , 5 InputText pentru a completa datele in tabel si un buton care trimite datele completate catre tabelul din baza de date "internetmanager.sqlite".Totul functioneaza corect , insa eu vreu ca in momentul cand selectez un rand din DataGrid si apaus un alt buton sa imi stearga acel rand.Ma putei ajuta cu un exemplu de cod?Eu am cautat pe net dar nu am gasit nimic care sa ma ajute .Am folosit urmatoarea functie care nu functioneaza deoarece nu stiu ce spune ceva de un dataProvider.In urmatoarea functie "dp" este dataProvider.
- Cod: Selectaţi tot
public function deleteRow():void{
if(dataGrid.selectedIndex >=0)
{
dp.removeItemAt(dataGrid.selectedIndex);
}
}
Mai jos am pus codul de la main.mxml
- Cod: Selectaţi tot
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication creationComplete="init()" xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" borderColor="#525151" >
<mx:Label fontSize="16" text="Manager Internet"/>
<mx:DataGrid id="ordersDG" selectedIndex="0">
<mx:columns>
<mx:DataGridColumn dataField="adresa" headerText="Adresa web"/>
<mx:DataGridColumn dataField="descriere" headerText="Descriere"/>
<mx:DataGridColumn dataField="username" headerText="Username"/>
<mx:DataGridColumn dataField="parola" headerText="Parola"/>
<mx:DataGridColumn dataField="email" headerText="Email"/>
</mx:columns>
</mx:DataGrid>
<mx:Form>
<mx:FormItem label="Adresa Web">
<mx:TextInput id="adresaInput"/>
</mx:FormItem>
<mx:FormItem label="Descriere">
<mx:TextInput id="descriereInput"/>
</mx:FormItem>
<mx:FormItem label="Username">
<mx:TextInput id="usernameImput"/>
</mx:FormItem>
<mx:FormItem label="Parola">
<mx:TextInput id="parolaInput"/>
</mx:FormItem>
<mx:FormItem label="Email">
<mx:TextInput id="emailInput"/>
</mx:FormItem>
</mx:Form>
<mx:Button label="Adauga date" click="saveOrder()"/>
<mx:Button label="Sterge elementul" click="deleteRow()"/>
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import com.flexandair.Order;
import mx.controls.DataGrid;
public var dbFile:File = File.applicationDirectory.resolvePath("db/internetmanager.sqlite");
public var dbConn:SQLConnection = new SQLConnection();
public function init():void{
dbConn.open(dbFile);
var sqlStatement:SQLStatement = new SQLStatement();
sqlStatement.text = "SELECT * FROM favorite";
sqlStatement.sqlConnection = dbConn;
sqlStatement.execute();
var result:Array = sqlStatement.getResult().data;
ordersDG.dataProvider = result;
}
private function saveOrder():void{
var order:Order = new Order();
order.adresa = adresaInput.text;
order.descriere = descriereInput.text;
order.username = usernameImput.text;
order.parola = parolaInput.text;
order.email = emailInput.text;
order.addEventListener('insert_complete', onInsertComplete);
order.save(dbConn);
}
private function onInsertComplete(event:Event):void{
var sqlStatement:SQLStatement = new SQLStatement();
sqlStatement.text = "SELECT * FROM favorite";
sqlStatement.sqlConnection = dbConn;
sqlStatement.execute();
var result:Array = sqlStatement.getResult().data;
ordersDG.dataProvider = result;
}
public function deleteRow():void{
if(dataGrid.selectedIndex >=0)
{
dp.removeItemAt(dataGrid.selectedIndex);
}
}
]]>
</mx:Script>
</mx:WindowedApplication>
Iar aici am pus codul de la "Order.as"
- Cod: Selectaţi tot
package com.flexandair
{
import flash.data.SQLConnection;
import flash.data.SQLStatement;
import flash.events.Event;
import flash.events.EventDispatcher;
public class Order extends EventDispatcher
{
public var id:int=0;
public var adresa:String='';
public var descriere:String='';
public var username:String='';
public var parola:String='';
public var email:String='';
public function Order()
{
}
public function save(dbConn:SQLConnection):void{
var insert:SQLStatement = new SQLStatement();
insert.text = "INSERT INTO favorite (adresa, descriere, username, parola, email) VALUES (@ADRESA, @DESCRIERE, @USERNAME, @PAROLA, @EMAIL)";
insert.parameters["@ADRESA"] = this.adresa;
insert.parameters["@DESCRIERE"] = this.descriere;
insert.parameters["@USERNAME"] = this.username;
insert.parameters["@PAROLA"] = this.parola;
insert.parameters["@EMAIL"] = this.email;
insert.sqlConnection = dbConn;
insert.execute();
dispatchEvent(new Event('insert_complete'));
}
}
}
Va rog frumos daca ma puteti ajuta as fi recunoscator.
Multumesc anticipat.