Access :: Insert Not Working - Adding Additional Parameters To Insert From DetailsView
Jul 13, 2010
Getting the message that ObjectDataSource ... count not find a non-generic method ... that has parameters ... The parameter list is fine until I get to the very end and it list the two data fields that are in my DetailsView. Using the ASP Tutorial #17 (Examining the Events Associated with Inserting, Updating, and Deleting) and the Exploring the Data Modification - specifically the one showing the INSERT of the Product Name and UnitPrice. ASPX page is pretty simple and attempting something similar, two fields to insert a new record - update the other fields later.
Full Error Message follows along with ASPX and the AsignaturasBLL.cs. Interesting thing is that when I swap the two fields in the DetailView, then the last two fields in the error message are swapped. In the error message I bolded these two fields.
In my detailsview, I have an emptydatatemplate set up to allow users to enter new records. The code works. However, once the record is inserted, the detailsview defaults to a standard insert screen. I know this will cause confusion for the users. I would prefer the detailsview to either show in edit mode or a read-only mode. I have used detailsview.changemode and detailsview.currentmode in the custom sub created for the add new button of the emptydatatemplate- neither of which do what I was hoping. It would be even better if when there was no data, it defaulted to the insert screen (which seems like that should be an easy, no-brainer way for .net to function) but it doesn't. Or, I don't know how to accomplish it.
I don't want to force the user to click cancel after inserting an item through the emptydatatemplate just to be able to use the detailsview for other records.
I am using 1 textbox with a Ajax Calendar extender to allow my user's to select a date graphically (exp: 12/15/2009). I have another textbox for the hour and minutes in military time(exp: 15:30). I think i have the code to grab the data from the 2 textbox's and combine them to be inserted into the field (exp: 12/15/2009 15:30). Here is my insert code for the Field:
[Code]....
However unless I make all the fields Nullable the insert fails, on top of that none of the other field that I have selected on the Detailsview Insert or Edit are inserted into there fields. Half of my fields have to be non-null values. So how do I fix this?
I can supply additional vb code and the aspx code if needed.
This is the error I'm getting: Cannot insert the value NULL into column 'Operation_type', table '/GAOSDB.MDF.dbo.BC_Perf_Log'; column does not allow nulls. INSERT fails. The statement has been terminated.'
This is the first non-null column.
I need to get this figured out because I have 30 other web pages that will be utilizing the same approach.
I have a detailsview control, which I use to enter data and save to the database. I am using object datasource to connect to the db. The detailsview control has autogenerateinsert = "true". When the insert is successfull, I want to set some variables and and to redirect the page to a different one. I don't know how to access the insert button click event of the detailsview to do it. If there is different solution like using <insertItemTemplate> and using custom linkbuttons.
I have a detailsview control which I use to enter data and save to the database. The control is connected to the db through a objectdatasource. When the insert is successful, I want to set some variables and redirect the page to a different one. The detailsview control has AutoGenerateInsertButton="True". I don't know how to access the insert button click event in the code behind,
I have a problem with DetailsView linked with Database, DetailsView is Insert/Edit enabled, and adding/ediditng data works, however........ when I add a new record (DetailsView in Insert mode) and press INSET instead going to record I have just created in Read-Only Mode it shows me blank form, it looks that the "linking" field is null.
I am trying to use a DetailsView to enter a new row into my database, but need to enter a further row in a linked table at the same time.
I am able to use the "iteminserted" event to gain control after the event has completed, but I need the key to the row i just inserted into the main table.
I am using a dataset, so the insert is managed by a tableadapter which has been configured to return an integer with the newly created identity of the row i just inserted.
Does anyone know how I can get access to that identity? is it in the "e" object of iteminserted? how do i find that if it is?
Here is the VB CodeBehind I am using to insert the row in the linked table (the DetailsView has just inserted a row into the "Books" table and the database has just assigned it an identity which should have been returned to somewhere by the tableadapter. I need that identity as a key to the "BookAuthors" table):
[Code]....
This is the ASP code for the DetailsView and the DataSource:
[Code]....
And here is the code for the tableadapter i am using
Is there anything missing in IIS 6.0 that prevents me from (Insert into table) using MS-Access?
Explain: The application works fine under Visual Studio 2008 IDE the insert into table works fine with no error, Also I tested with hosting provider and works fine with no problem. but now I have published the same exact app in a dedicated server windows 2003 with IIS 6.0 .NET framework 2.0 with latest service pack I gave IIS_WPG write/modify access to the folder where MS-Access database is located and database but at the time of insert an error pop-up. I need to install in the Server or settings in the IIS to recognize my MS-Access db is it some office runtime that I am missing. (BTW I am using OLEDB connection string in my C# )
Using System.Data.OleDb;
I can retrieve data off of it with no problem but when I try to insert is when it fails I thought the problem was Access Rights but I do not think is the case.
I have two pages: the first it's a gridview that bind to DataSet, the second one have DetailsView that bind to DataSet that is used for editing and inserting.
Upon insertion on DetailsView Page, I want to redirect to GridView Page.
I'm trying to catch (in string "s") the primary key for the record being inserted via DetailsView. I have an SqlDataSource connection to an Access 2003 database. The primary key is auto-increment integer (long) field.
I am trying to insert a foreign key into detailsview so that user didn't have to enter value every time. I am using the following code to do this but it is failing. I am not sure what needs to be done now.
Protected Sub LinqDataSource1_Inserting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LinqDataSourceInsertEventArgs) Handles LinqDataSource1.Inserting LinqDataSource1.InsertParameters("Company").DefaultValue = Session("Company_new").ToString() End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim company As String = Request.QueryString("Company") Session("Company_new") = company End Sub End Class
I have a scenario in which the user can add a new option to appear in the list of available choices in a DDL contained in a detailsview when they select an option <Add New>. This displays an AJAX model popup which then allows the user to enter the new option text. Then they hit an Insert button which inserts that new option into the DDL's datasource and I call ddl.DataBind. Subsequently I want to close the modal popup and then display the newly created DDL option as selected.
When I step through the code, everything appears to be working as expected...i.e. the DDL's datasource now has 1 more record than before and the ddl.SelectedValue is the newly created record for its datasource. I can also query ddl.items(99) and see the new option is part of the ddl's items collection and the new record is Selected.
HOWEVER, once the screen comes back from the debugger, the DDL is now showing the newly created option, but still the prior selected option of "<Add New>". And if you pull the DDL down the newly created option is not in the list?
I cannot figure out how that happens...though I suspect it has something to do with the AJAX/Update panel. Here's some code:
Is it possible to code DetailsView to go to the new record I've just insertted? Currently it appears to default to the first record, utlimatly I'd like it sorted Last name, first name and upon an Insert it should go to that new record on pageload.
I am using DetailsView to INSERT new records. I have a field "Paid Date"(date) that needs to be pre-populated with the current date. 90% of the time, the user will use the default date, however, there are times when the user will need to change the data as needed. I want to add this default in the code-behind. I DO NOT want to use template item.
I setup a very simple example using a DetailsView and an EF Model with Contact, Individual, and Customer from the AdventureWorks database (2008). Viewing, Editing, and Deleting work just fine. However, I'm getting the error when I try to create a new Contact.
Here are the relevant code snippets:
[code]...
I get the dreaded error:
Cannot insert the value NULL into column 'PasswordHash', table 'C1AdventureWorks.Person.Contact'; column does not allow nulls. INSERT fails.
I've monkeyed around with the StoreGeneratedPattern="Computed" and DefaultValue="0" for the PasswordHash property in the Contact entity as well, but it didn't .
Not sure where I went wrong with this one, but I can't figure it out now... I've got a DetailsView in an UpdatePanel. A dropdownlist controls which person's details are displayed in the DetailsView. I have the DataSource set to an ObjectDataSource, which has select, insert and update methods defined. I also have a method for the ItemCommand, ItemInserting, ItemUpdating and DataBound events of the DetailsView specified.
When I click "New" or "Edit" on the DetailsView I get the open form with either the details for the current person, or a blank form, exactly as I would expect. But when I click the "Update" or "Insert" buttons it does absolutely nothing. I have it running in debug, and have put breakpoints in the ItemCommand, ItemInserting and ItemUpdating methods, right at the top, and it never goes there. The form remains open, and nothing happens. If I click "Cancel", it posts back and goes back to ReadOnly mode.
A couple more minor details that may be important: This page is using a Master page, which is where the ScriptManager is. I'm actually using the ScriptManager from the AjaxControlToolkit. I also have a GridView in this same UpdatePanel, and that has a FileUpload control in it. Because the FileUpload control doesn't work properly without some tweaking, I have to call a RegsiterPostbackTrigger method on page load to link it back to the Master page's scriptmanager. Not sure if that's causing any issues...?
I had this working fine, but then as the page got more complex and I had to change some of the code, at some point it just stopped working and now I can't figure out how to get this working again... I'm happy to post code if necessary, just thought I'd try this first to see if anyone has a quick idea for what to check.
I have a panel with a detailsview that i use to create rows for table MMS_Projects.
I have another Panel in which i create a report of contents of this table along with dedicated controls for each (buttons to add elements to child tables like goals and tasks)
when i complete an insert into the projects table, the page re-posts and the dynamic projects report re-initializes (i added a timestamp at the top of the report to confirm that the page re-initializes). but the new row is not immdiately present.
if another control is clicked (causing another re-post), the new row shows up.
since i know the insert was successfull and that the dynamic report has been "re-init"-ed, i assumed there is a delay (one thread is still performing an insert while another is creating a report), so i forced a system.threading.thread.sleep(3000) in the creation of the report.
I figure that this should be relatively straightforward, but I still can't get it to work. I have a gridview and a detailsview to set up shifts for students and teachers. I would like to be able to insert new shifts using a detailsview. I will limit the students, teachers and location to items that are in a dropdownlist. The problem is that when I handle the iteminserting event. the e.values collection doesn't contain all of the fields I want to populate. How do I add the new fields to the list. This is my codebehind:
Sub On_Inserting(ByVal sender As Object, ByVal e As DetailsViewInsertEventArgs)
I have a dropdownlist in the edititemtemplate of a detailsview. The dropdownlist is bound with an objectdatasource. The detailsview is bound to a seperate objectdatasource which connects it to the insert method. When the page loads the dropdownlist is bound properly. However, when I make a selection and select insert I get the following error: Could not find a property named 'DeptID' on the type specified by the DataObjectTypeName property in ObjectDataSource 'objCurrentProduct'. I've tried to remove the SelectedValue='<%# Bind("DeptID") %> attribute. I can then insert without an exception being thrown but the selected value of the dropdown is not recognized. Here is the code:
Scenario : I have two database tables with one to many relationship. eg:- City and Related news. So I have a gridview(Gridview1) which lists out all the cities and allows edit, delete of the gridview rows. Now since i wanted to display all news for the city, i have a nested gridview as a column in this Gridview1. This nested gridview displays all the news for the cities. And I have edit, delete buttons for this gridview too - So far, good - works fine.
Now what I would like to do is - To insert a new news item for a city. For this, I attached a detailsview to my nested grid(gridview2), and tried to insert. I need the primary key id of city table from the first grid (gridview1) to insert the news into the second database table and I could not access this value from the parent gridview. My gridview1 does not have datakeyname, it is programatically bound.
Also, When the gridview/detailsview is nested, it does not get listed in the event-handler list. So I cannot use say, detailsview1_iteminserting. I do not how to add this event handler
Has anybody done anything similar? When I started, it looked like a pretty straightforward thing - There must be some way to do this. But I just can't get it to work. How do you usually insert into the child table in a one-to-many relationship? Should i just be using two separate gridviews?