Solved

Manual Insert Fails

Posted on 2008-10-09
6
164 Views
Last Modified: 2010-04-21
I'm trying to insert a record to a sql server using an objectdatasource but I'm getting an exception when it gets to inserting the date field. The exception is:
"Object reference not set to an instance of an object."

The variable has the correct date in it so I'm not really sure what this means. I will post a copy of all the code I'm using in case someone can see what I'm doing wrong. Thanks for any help on this.

Code Behind on the Onclick event:
 
        Dim strWorkOrderID As String = txtWorkOrderID.Text
        Dim datDateWorked As Date = txtDateWorked.Text
        Dim strWorkPerformed As String = txtWorkDone.Text
       
        odsWorkOrderDetail.InsertParameters("WorkOrderID").DefaultValue = strWorkOrderID.ToString()
        odsWorkOrderDetail.InsertParameters("WorkDone").DefaultValue = strWorkPerformed.ToString()
        odsWorkOrderDetail.InsertParameters("DateWorked").DefaultValue = datDateWorked.ToShortDateString()  ****Fails Here****
        odsWorkOrderDetail.Insert()
 
 
 
ObjectDataSource:
 
 
 
<asp:ObjectDataSource ID="odsWorkOrderDetail" runat="server" 
                    InsertMethod="AddWorkOrderDetail" OldValuesParameterFormatString="{0}" 
                    SelectMethod="GetWorkOrderDetails" TypeName="WorkOrderBLL">
                    <SelectParameters>
                        <asp:Parameter Name="WorkOrderID" Type="String" />
                    </SelectParameters>
                    <InsertParameters>
                        <asp:Parameter Name="WorkOrderID" Type="String" />
                        <asp:Parameter Name="WorkDate" Type="DateTime" />
                        <asp:Parameter Name="WorkDone" Type="String" />
                    </InsertParameters>
                </asp:ObjectDataSource>
 
 BLL:
 
 <System.ComponentModel.DataObjectMethod(System.ComponentModel.DataObjectMethodType.Insert, False)> _
   Public Function AddWorkOrderDetail _
                  (ByVal workOrderID As String, _
                   ByVal workDate As Date, _
                   ByVal workDone As String) As Boolean
        Dim workOrderDetail As New WorkOrderDAL.FAC_WorkOrderDetailsDataTable
        Dim workOrderDetailRecord As WorkOrderDAL.FAC_WorkOrderDetailsRow = workOrderDetail.NewFAC_WorkOrderDetailsRow()
 
        workOrderDetailRecord.WorkOrderID = workOrderID
        workOrderDetailRecord.WorkDate = workDate
        workOrderDetailRecord.WorkDone = workDone
 
        workOrderDetail.AddFAC_WorkOrderDetailsRow(workOrderDetailRecord)
        Dim rowsAffected As Integer = DetailsAdapter.Update(workOrderDetail)
        Return rowsAffected = 1
    End Function
 
 
 
 
Stored Procedure:
 
 
 
ALTER PROCEDURE dbo.spInsertFAC_WorkOrderDetails
(
@WorkOrderID varchar(15),
@WorkDate datetime,
@WorkDone varchar (1000))
AS 
SET NOCOUNT OFF;
 
 
INSERT INTO dbo.FAC_WorkOrderDetails ([WorkOrderID], [WorkDate], [WorkDone])
     VALUES (@WorkOrderID, @WorkDate, @WorkDone);
SELECT WorkOrderID, WorkDate, WorkDone FROM dbo.FAC__WorkOrderDetails 
WHERE (WorkOrderDetailID = SCOPE_IDENTITY())

Open in new window

0
Comment
Question by:AkAlan
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
6 Comments
 
LVL 11

Expert Comment

by:fanopoe
ID: 22680523
dates really stink in cross platform programming, and you're taking a test string, changing it to a data, then to a date string, then passing it to a database. What happens when you declare datDateWorked  as a string instead and pass the value thusly?

hth
0
 
LVL 6

Author Comment

by:AkAlan
ID: 22680565
Same exact error. I even tried to hard code the date like this:
odsWorkOrderDetail.InsertParameters("DateWorked").DefaultValue = #1/1/2008#
it still gave me the same exact error
0
 
LVL 22

Accepted Solution

by:
prairiedog earned 500 total points
ID: 22680635
Parameter name does not match?
<asp:Parameter Name="WorkDate" Type="DateTime" />
odsWorkOrderDetail.InsertParameters("DateWorked").DefaultValue = datDateWorked.ToShortDateString()  
0
Three Reasons Why Backup is Strategic

Backup is strategic to your business because your data is strategic to your business. Without backup, your business will fail. This white paper explains why it is vital for you to design and immediately execute a backup strategy to protect 100 percent of your data.

 
LVL 6

Author Comment

by:AkAlan
ID: 22680651
Thanks, I must be way too close to this.
0
 
LVL 22

Expert Comment

by:prairiedog
ID: 22680705
It happens. Especially after you have seen your own code for a thousand times, you will need a pair eyes from another person to find this kind of error.
0
 
LVL 6

Author Closing Comment

by:AkAlan
ID: 31504744
That did the trick. Now I have another problem but that will be for another post if I can't figure it out. Thanks, I looked at this for 4 hours.
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
It’s a strangely common occurrence that when you send someone their login details for a system, they can’t get in. This article will help you understand why it happens, and what you can do about it.
Learn how to set-up custom confirmation messages to users who complete your Wufoo form. Include inputs from fields in your form, webpage redirects, and more with Wufoo’s confirmation options.
Learn how to set-up PayPal payment integration in your Wufoo form. Allow your users to remit payment through PayPal upon completion of your online form. This is helpful for collecting membership payments, customer payments, donations, and more.

732 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question