Link to home
Start Free TrialLog in
Avatar of franklinan
franklinan

asked on

BindingNavigator problem....

Please....

I have a form with Bindingsource, Dataset, DataAdapter and BindingNavigator...

The problem is that bindingNavigator is not flexible...So..What I want is to implement the funcionality of add, Update, delete to my data, but using storedProcedures and using the possibility, for example, to ask the user before delete a Record... Anybody can help me ? Is it possible using the bindingNavigator, But modifiyng the standard behaviour of it  ?¿ ¿


Thanks in advance

 
Avatar of vadim63
vadim63
Flag of United States of America image

Of course, it is. You can remove all the standard buttons and create your own buttons, with your own queries (with Stor_proc, or whatever).
Avatar of franklinan
franklinan

ASKER

please...a sample of how to call a simple stored procedure....just returning a value....
Did you create your Dataset, DataAdapter at design time? Can you edit your DataSet with designer?
I've got my Dataset and DataAdapter with Designer....I can Edit the Dataset...But I don't know how to "Include" the call to Stored Procedure.....please help ! Thanks for your fast answer !
OK, go to designer > right click on your TableAdapter > Add query > Use Existing Stored Procedure > Select the Stored Procedure from the dropdown list >  click next > check "A single value" > click next > Assign the name > Finish.
um....I'm sorry but something is not ok....

In my TableAdapter actually I've a Query that is a select, which result is used by BindingSource to link with several text boxes where the data is shown....

I don't want to loose this....

One more thing : If I use right click, I don't have any option of use a Stored Procedure...just can use a Query Generator..... (I'm using VS2005)....

I'm confused,....sorry
Finally I've Drag and Drop the Stored Procedure (Add new Datasource) and now  a Dataset is created...My problem is...HOW I CALL THAT ? ? ? ? ?

Please...a sample....I'm totally lost !
If you already have a Dataset, you don't need to create another one. You can add adapters, queries to existing Dataset.
ASKER CERTIFIED SOLUTION
Avatar of vadim63
vadim63
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Can you put some code of how to access insert Stored procedure created ? I don't know how to do that...
I can't find the stroed procedures created n the Database....Something I'm doing wrong maybe....
One last question...Actually I have modified the add item on BindingNavigator with this :

Private Sub BindingNavigatorAddNewItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorAddNewItem.Click
        T_NombreTableAdapter.SP_AddItem(NomTxt.Text, ApeTxt.Text)

    End Sub

Other Items on BindingNavigator are original....

On SAVEITEM is this :

Private Sub T_NombreBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles T_NombreBindingNavigatorSaveItem.Click
        Me.Validate()
        Me.T_NombreBindingSource.EndEdit()
        Me.T_NombreTableAdapter.Update(Me.FrankDataSet.T_Nombre)

    End Sub

Why When I click ADD after put some Values, and CLICK on SAVEI to Update the Database, the changes are not visible till I close and open the aplication again ? ?


Because you have to refill your tableadapter.

        Me.Validate()
        Me.T_NombreBindingSource.EndEdit()
        Me.T_NombreTableAdapter.Update(Me.FrankDataSet.T_Nombre)

        Me.T_NombreTableAdapter.Fill(Me.FrankDataSet.T_Nombre)
um...and I have to reload all Dataset ? ?  ?...Not possible to only reload the modified/added records ?
I don't know the way you fill it Initially
Finally Works, but I would like to reload only modified/added results....any idea ?

I've got this code :



Public Class Form1
    Dim AddRecord As Boolean = False

    Private Sub T_NombreBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles T_NombreBindingNavigatorSaveItem.Click
        Me.Validate()
        Me.T_NombreBindingSource.EndEdit()
        '
        If AddRecord = True Then
            T_NombreTableAdapter.SP_Añadir(NombreTxt.Text, ApellidoTxt.Text)
        Else
            Me.T_NombreTableAdapter.Update(Me.FrankDataSet.T_Nombre)
        End If

        Me.T_NombreTableAdapter.Fill(Me.FrankDataSet.T_Nombre)
        AddRecord = False
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
        Me.T_NombreTableAdapter.Fill(Me.FrankDataSet.T_Nombre)

    End Sub

    Private Sub BindingNavigatorAddNewItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorAddNewItem.Click
        AddRecord = True
        NombreTxt.Text = ""
        ApellidoTxt.Text = ""

    End Sub
End Class
OK, as I can see, initially, you pull all records. So, I didn't understand, would you like to pull only one record after inserting/updating, or all records, but positioned on the last modified/added row?
And another question. What kind of control are you binding with your data? Datagridview? Textboxes?
a) What I'm refering is : If I have a Dataset Loaded, why Do I need to read again all records each time I  add just one ? The best would be just to recover the new add record, because all the other are loaded on the Dataset and them have'nt been modified.


b) I have a lot of textboxes... Is it a fast way of write the call to StoredProcedure with all parameters ? Maybe I've 30 parameters to pass !  ! !
T_NombreTableAdapter.SP_Añadir(NombreTxt.Text, ApellidoTxt.Text,   [........  to 30 ! ! ! ! ])


Thanks again for your help..I appreciate soooo much !!!!!!