Solved

Manual Insert Fails

Posted on 2008-10-09
6
162 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
  • 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
PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

 
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

What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

Question has a verified solution.

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

Introduction A frequently used term in Object-Oriented design is "SOLID" which is a mnemonic acronym that covers five principles of OO design.  These principles do not stand alone; there is interplay among them.  And they are not laws, merely princ…
In this article we will get to know that how can we recover deleted data if it happens accidently. We really can recover deleted rows if we know the time when data is deleted by using the transaction log.
This video teaches viewers how to create their own website using cPanel and Wordpress. Tutorial walks users through how to set up their own domain name from tools like Domain Registrar, Hosting Account, and Wordpress. More specifically, the order in…
Wufoo.com provides powerful tools for surveying targeted groups, and utilizing data from completed surveys to find trends, discover areas of demand or customer expectation, and make business decisions on products or services.

860 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