DataSource Controls :: FormView Bound To LinqDataSource Shows Data But Won't Update Database
Feb 10, 2011
I have a FormView bound to LinqDataSource, that is intended to allow editing of a single product's details, that is selected from a GridView. The LDS has a Where parameter set to point to the GridView control (i.e. a ControlParameter).
This was a pretty disappointing moment - when databinding, using Eval("Contact.LastName") would work. It nicely evaluates the related Linq object's member LastName. If the "Contact" object is null, no error is thrown... instead the field is simply null.
However, the same does not hold for sorting - if there exists a null entry (this object does not have a Contact) then the LinqDataSource throws a NullReferenceException. This means that, if you ever have nulls on your foreign-key objects, you can't use sorting headers in the ListView.
This makes the feature moderately useless - I have to roll my own properties for every single field I'd ever want to sort on. That's insane.
I have a gridview on a page and based on the row selected I need to fill out a form view (dynamic data enabled) from a linqdatasource. On gridview_sleectedindexchanged I create the linqdatasource and set it as the datasource for the formview. It displays nicely but clicking update returns a "Could not determine a MetaTable" error for the datasource mapped.
THe goal is to create a single page that allows users to select a row then get the appropriate data, create an updateable formview so further edits can be done. Do not want to scaffold.
I have set up Linq to sql. I now need to fill a formview with a select that does a join across a few tables. Have not been able to find any example or tuts that go beyond the simple select. Any suggestions? Can this even be done?
I am *VERY* new to ASP.net. This may seem simple to you all, but I'm really lost. I have a small sized page with three text boxes (part of the InsertItemTemplate) of a formview, and a slightly modified link the system generated to submit the data to be inserted in the database:
[Code]....
If this page is run, it inserts the data into the database fine, clears the form and sits there. I want it to return a simple "Thank you" page in a window of the same size, with a Close Window buttom at the bottom to close the window:
[Code]....
When I set the postbackurl property on the first page, everything appears to work, except the write is never done to the database. If I remove the postback, it works as it did previously.
I have a stored procedure and a function. I am connecting my FormView to the function and I am trying to insert a new record. I am not sure if the problem is the stored procedure, the fucntion or the FormView.
If I have a Linqdatasource that isn't connected to a a bound control on my page how do I use the data source to read data in the code behind. ie
var query = (from x in linqdatasource select x)
What I actually want to do is create a data array (myArray) within the code, read all of the data from the linqdatasource (selecting 1 field to form tableDataArray), then compare the two arrays and then write (insert) those into in myArray that are not already in the datasource to the datasource (ie execute an insert back on the datasource).
How can i retrieve the data in linqdatasource in code behind?i have a dynamic database design with column storing the datatype eg. text, int, date.i need to retrieve the value in order to populate the control and bind it.
<asp:FormView DefaultMode="Edit" ID="FormView1" runat="server" onitemupdating="FormView1_ItemUpdating"> <EditItemTemplate> <asp:TextBox ID="txtPrimerNombreNatural" runat="server" SkinID="texto" MaxLength="30" Text='<%#Bind("PrimerNombre") %>'></asp:TextBox> <asp:TextBox ID="txtSegundoNombreNatural" runat="server" SkinID="texto" MaxLength="30" Text='<%#Bind("SegundoNombre") %>'></asp:TextBox> </EditItemTemplate> </asp:FormView> <asp:Button ID="Actualizar" runat="server" Text="Button" CommandName="Update" /> This formview is bound in this way: protected void Page_Load(object sender, EventArgs e) { Persona _persona = new Persona(); _persona.ObternerPersonaByUserIdApp(1); List<SILPA.AccesoDatos.Generico.PersonaIdentity> persona = new List<SILPA.AccesoDatos.Generico.PersonaIdentity>(); persona.Add(_persona.Identity); FormView1.DataSource = persona; FormView1.DataBind(); }
When the page is shown, the textbox are filled correctly, this textbox are filled with the "primernombre" and "segundonombre" properties from the persona class. After this, If I change the textbox, and after click the update button, I need to update the persona class with the changes from the textboxes, then I call a ActualizarPersona method for updating the database. How can I do for update the persona class when I change the textboxes and click the update button? I try this method protected void FormView1_ItemUpdating(object sender, FormViewUpdateEventArgs e) { }
I build a webpage to edit the data entry, all the textbox wroks fine. However when I update the value originally took in using dropdown list , I get error and couldn't get correct update.
I am counting from a table for that i have written code as below
protected void get_Id_Afterpoint() { int counter = 0; string strSql = "select count(*) as ID from tblEnergy where ID=?"; OdbcCommand com = new OdbcCommand(strSql, con); com.Parameters.AddWithValue("ID", DropDownList1.SelectedValue); OdbcDataAdapter oda = new OdbcDataAdapter(com); DataTable dt = new DataTable(); oda.Fill(dt); if (dt.Rows.Count == 0) { lblID2.Text = "1"; } else { counter = dt.Rows.Count; counter = counter + 1; lblID2.Text = Convert.ToString(counter); } }
there is no record related to DropDownList1.SelectedValue. but as i am counting if(dt.rows.count) and i put break point on the bolded part it shows 1 record. how it can be possible?
I am having a hard time updating from my gridview based the value that I am setting in the datakeynames it is the Ucc field I keep getting and index out of range exception on the e.keys[0]. I have done this before so I am confused what I am missing here.
I have a TextBox in a nested FormView that I want to use for entering a date. I have added a calender extender to the TextBox and I want to set TextBox to read only so that the date can only be entered by using the calender extender. This way I can avoid improper date formats.
The problem is that when I enter a new date and click the Update button, the new date is not saved to the database. I have done some searching on the WEB for a solution, and I found that "Page.Form.SubmitDisabledControls = True" is used in the Page_Load event to solve this problem. I have tried this and it does not work.
Another solution that I have seen is to set the control to readonly at runtime in the FormView "ItemCreated" event. I have been unable to access the "ItemCreated" for this FormView because it is nested.
I am working on an application and am attempting to use Linq with and ObjectDataSource but I only want to display/update 50% of the fields that are in the corresponding table. It appears to me that for this to work correctly, I need hidden fields on my form for all of the data fields from the table that the user cannot access. Is this the only way to do this? I have the following in my update method of my ODS:
[Code]....
The problem is, only the fields that appear on the form have data in them.
Im trying to update my DB(DataBase) by using SQL UPDATE query ,but its not updating in the dataBase i receive confirmation(in testLabel) that one row is affected(dataReader = query.ExecuteReader(); return numbers of rows affected)...
I have given a HTML editortext control on a page,which generates HTML (i have to store it in my DB,that page is only for Admin) ,on pressing Update button , im receving in my testLabel that one row is affected(which shows DB is updated succesfully) but when i check my DB its in old state,it is not updating...
Here is my Event handler of Update Button which have to make updates in DB:
Bug: UPDATE command Does NOT Work as Expected on a DataBound GridView This was tested in VS2005 and VS2008
Took a while to figure this out - A simple recurse thru Page Controls Makes UPDATE Not Work as expected.
To Recreate this bug:
A simple Gridview bound to an Objectdatasource on a page with ALLOWEDIT ALLOWDELETE
If one inserts some code (a function call in my example) that just recurses the PAGE controls in either the PAGE_PREINIT, PAGE_INIT, PAGE_INITCOMPLETE events,
Then the UPDATE does not FIRE! and After Pressing UPDATE the GRID does not BIND! You Get A Blank Page - Funny thing tought it's only the UPDATE Functionality that gets affected by this - Everything else works fine including EDIT & DELETE.
If the same function call (recurse thru page controls) is added in the PAGE_PRELOAD, PAGE_LOAD -- Then the UPDATE starts working again as expected.
BELOW Is SAMPLE Code using the NORTHWIND DB Products Table and a Typed DATASET.XSD - You can use your own datasource for the ObjectDatasource - (Note I took out the Foreingkey constraint in products table from Nortwind for delete to work)
NOTE: One should be able to just cut and paste the function PAGECONTROLS_RECURSETEST on any working form that has a bound Gridview with Update functionality and you should be able recreate the bug that way by calling the function from the different page_events
I have an Objectdatasource configured with Select, Insert, Update & Delete queries in a Dataset. This datasource is linked to my Gridview. I do not require all fields in the table to be displayed or updated in my grid so i have turned off the Visible property on several.
However, when i go into Edit mode and trigger the UPDATE to the database table, i get NULL values updated in the columns i set False for the Visible property.
How can i remove these columns from the GridView and the Edit mode and still have them UPDATE with their current values instead of being overwritten with NULL's?
Creating a system with web front end and SQL backend (microsoft obviously). I have tried using the asp.netsqlprovider but i can;t as i am only allowed one database on the server, so i then tried to update my current database with the triggers to input the schema into the already existing database.Next step i create my own table with two simple fields of username and password and try and authenticate that way, i can't get that to work either.
I ahve limited permissions on the network as i am a University Student. I really don't know what to do. Never had to create a log on system before and i thought it would be far simpler than this. I ahve used Microsoft's sqlprovider schema before and it worked fine. I have also authenticated via IIS and AD too before. I can't do any of those two in this instance it seems.I need an alternative for logging in users, if needs be in can be crude. I also still need to have some kind of two different views too for logged in users and not logged in users, but that can change if needs must.Don't let me down people, haha. Think this posts in the correct place, i could not find another one i thought could be more relevant.