Click here to Skip to main content
15,886,026 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
I tried Google and trying to solve this error but of no use. the error still persists.

When tried to execute this line

C#
cmd.CommandText = string.Format("[dbo].[search_PIValue] {0},'{1}'", kpi,monthyear);


I got this error:

Error converting data type nvarchar to date.

I don't know what to change and where to make a change since i'm a newbie programmer.
Please help me.

This is my stored procedure:
SQL
ALTER proc [dbo].[search_PIValue]
(

@KPI int,
@monthyear DATE 
)
as
begin
  select 
 p.ObjectID,p.PIName,pt.PIvalue
 
 from PItable p
 inner join
 PITrantbl pt
 on
 p.ObjectID = pt.PID
 
 where p.KPIid=@KPI and pt.Month=MONTH(@monthyear)
end
Posted
Updated 3-Apr-13 0:25am
v2
Comments
vijay__p 3-Apr-13 6:28am    
What is the value of "monthyear" parameter that you are passing?
Velrats 3-Apr-13 6:38am    
{14/05/2012 12:00:00 AM}

This is the value thats being passed @Patel_vijay
vijay__p 3-Apr-13 6:44am    
Try to format your "monthyear" value in yyyy-MM-dd HH.mm.ss format.
It will work

Ex. MONTH('2012-05-14 12:00:00)
Velrats 3-Apr-13 7:06am    
I'm confused Where to make this change!?

in c# code or in SQL query?

1 solution

Assuming that monthyear is a DateTime (and it looks like it is from your example) pass it through as a Parameter instead of converting it at all:
C#
cmd.CommandText = string.Format("[dbo].[search_PIValue] {0},@MY", kpi);
cmd.Parameters.AddWithValue("@MY", monthyear);
SQL should then sort it all out itself.
 
Share this answer
 
Comments
Velrats 3-Apr-13 8:53am    
Thanks a lot @OriginalGriff it solved my problems and runs fine now :)
OriginalGriff 3-Apr-13 9:25am    
You're welcome!

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900