In principal, despre .NET, VB6. C#,VB.NET, ASP.NET Apoi despre programare si multe alte chestii ... de programare.

Subscribe RSS   Mini tools List

luni, decembrie 11, 2006

editarea de obiecte
Va rog sa folositi acest URL NOU de la
http://serviciipeweb.ro/iafblog/

Va trebui, asa cum am promis, sa facem adaugarea/ modificarea / stergerea de obiecte( pe scurt, C(R)UD – create, (read), update, delete). Luam un buton din Toolbox, il tragem pe forma, ii setam din proprietati ( apasati F4) numele la btnAdd si text la “&Add” ( &A e pentru ca, atunci cind apasam <ALT> + A , sa fie ca si cind dam click pe button)

 

 

Acum dati dublu click pe button – si veti intra in codul de click. Avem o problema : trebuie ca user-ul sa introduca numele Publisher-ului. O sa creeam o noua forma : Click dreapta pe BookWin, Add => Windows Form- si ii veti da denumirea de frmPublisherAdd.cs. Apasati F4 si la Text puneti : Add Publisher

 

Adaugati un Label( Name: lblName , Text : &Name) si un textbox ( Name : txtName)

Adaugam acum un Button de Add ( Name : btnAdd, Text : &Add) si unul de Exit (Name : btnExit, Text : E&xit)

 

Codul de pe btnExit e cel mai usor ( dati dublu click pe buton)

  private void btnExit_Click(object sender, EventArgs e)

        {

            this.Close();//close the form

        }

Codul de pe Button-ul de Add :

 

            private void btnAdd_Click(object sender, EventArgs e)

        {

            BookObjects.Publisher p = new BookObjects.Publisher();

            p.Name = txtName.Text;

            p.Save();

this.Close();//close the form

        }

 

E clar ca trebuie sa scriem metoda de Save pe Publisher

Inapoi la clase : si acolo vom scrie metoda de save.

  public void Save()

        {

            string strSQL = " insert into Publisher(NamePublisher";

            if (!string.IsNullOrEmpty(this.Site))

                strSQL += ",SitePublisher ";

 

            strSQL += " ) Values (";

 

            strSQL += "'" + this.Name.Replace("'","''") + "'";//terminator for string in SQL is ' - so replace with ''

           

            if (!string.IsNullOrEmpty(this.Site))

                strSQL += "," +"'"+ this.Site.Replace("'", "''") +"'";//terminator for string in SQL is ' - so replace with ''

 

 

            strSQL += " )";

 

           

            Settings.ExecuteSQL(strSQL);

           

           

           

        }

 

In sfirsit, sa scriem codul pentru adaugare de pe forma de list:

E clar ca va trebui sa facem re incarcarea datelor  - deci o sa luam codul de pe frmPublisherList_Load si o sa il punem in o functie generica , RebindData()

 

private void btnAdd_Click(object sender, EventArgs e)

        {

            frmPublisherAdd f = new frmPublisherAdd();

            f.ShowDialog(this);

            RebindData();

        }

 

private void RebindData()

        {

BookObjects.ColPublisher publishers = new BookObjects.ColPublisher();

            publishers.Load();

            colPublisherBindingSource.DataSource = publishers;

        }

 

Sa verificam functionarea

Dati CTRL+ F5 , apasati Add – introduceti un nume – apasati Add – si verificati ca se vede in lista ceea ce ati introdus.

 

Sa facem acum stergerea.

Adaugati alt buton(Name = btnDelete, Text = &Delete) si sa scriem cod pentru delete

private void btnDelete_Click(object sender, EventArgs e)

        {

 

            BookObjects.Publisher p = colPublisherBindingSource.Current as BookObjects.Publisher;

            if (p != null)

            {

                //avert the user

                if (MessageBox.Show(this, "Delete " + p.Name, "Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)

                    return;

 

 

                p.Delete();

                RebindData();

            }

        }

 

In sfirsit, sa scriem codul pentru update: iarasi buton, iarasi cod

private void btnUpdate_Click(object sender, EventArgs e)

        {

            BookObjects.Publisher p = colPublisherBindingSource.Current as BookObjects.Publisher;

 

            if (p == null)

                return;

 

            frmPublisherUpdate f = new frmPublisherUpdate(p);

            f.ShowDialog(this);

            RebindData();

        }

 

Pentru asta, adaugam o alta forma, in care sa facem update .

Dar avem neaparata nevoie de un publisher pe care sa facem update.Vom modifica constructorul formei ca sa accepte ca parametru de intrare un publisher.

 

Ca sa punem valorile deja obtinute in text box-uri, avem 2 variante :

Fie codam de mina de doua ori ( ceva de genul  txtName.Text= m_Publisher.Name si , pe salvare, m_Publisher.Name= txtName.Text),fie lucram cu DataBindings direct . Prefer acum, pentru rapiditate, a doua varianta :

 

public partial class frmPublisherUpdate : Form

    {

        private BookObjects.Publisher m_Publisher;

        public frmPublisherUpdate(BookObjects.Publisher pub)

        {

            m_Publisher = pub;

            InitializeComponent();           

        }

 

       

        private void frmPublisherUpdate_Load(object sender, EventArgs e)

        {

            txtName.DataBindings.Add("Text", m_Publisher, "Name");

            txtSite.DataBindings.Add("Text", m_Publisher, "Site");

        }

 

        private void btnSave_Click(object sender, EventArgs e)

        {

            m_Publisher.Update();

            this.Close();

        }

 

        private void btnExit_Click(object sender, EventArgs e)

        {

            this.Close();

        }

 

 

    }

 

Sa scriem si codul de salvare pe publisher :

  public void Update()

        {

            string strSQL = " update Publisher set ";

            strSQL += " NamePublisher = ";

 

            strSQL += "'" + this.Name.Replace("'", "''") + "'";

 

            strSQL += ",";

 

            strSQL += " SitePublisher = ";

 

            strSQL += "'" + this.Site.Replace("'", "''") + "'";

 

 

            strSQL += " where IDPublisher = " + this.IDPublisher;                           

            strSQL += " ";

 

 

            Settings.ExecuteSQL(strSQL);

        }

 

 

Ca tema de acasa, ramine sa faceti acelasi lucru pentru tabela Author.

Data viitoare o sa facem un mic refactoring de code... si o sa facem un program de setup pentru aplicatia Windows.

 

           

Post page: http://serviciipeweb.ro/iafblog/2006/12/11/editarea+De+Obiecte.aspx

Weblog post by 'admin' on 'editarea de obiecte'

Categories:programare;tutoriale

 
Acest blog s-a mutat la http://www.serviciipeweb.ro/iafblog/