While trying to execute the following procedure from a C# Winforms project I am getting the following error:
Conversion failed when converting date and/or time from character string
This is my stored procedure:
CREATE PROCEDURE DisplayTime
@name VARCHAR(50),
@fromdate date,
@todate date
AS
BEGIN
DECLARE @VTIME TIME(7)
SELECT
@VTIME = CAST(SUM(DATEDIFF(SECOND, 0, time)) /60/60 AS TIME)
+':'+CAST(SUM(DATEDIFF(SECOND, 0, time)) /60%60 AS TIME)
+':'+ CAST(SUM(DATEDIFF(SECOND, 0, time)) % 60 AS TIME)
FROM
(SELECT time
FROM time
WHERE [user] = '@name'
AND date BETWEEN '@fromdate' AND '@todate') AS T
SELECT @VTIME AS count_down_sec
END
This is my C# code:
private void button1_Click(object sender, EventArgs e)
{
if (txt_UserName.Text != "")
{
con.Open();
cmd = new SqlCommand("DisplayTime",con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@name", txt_UserName.Text);
cmd.Parameters.AddWithValue("@fromdate",dateTimePicker1.Value.Date);
cmd.Parameters.AddWithValue("@todate",dateTimePicker2.Value.Date);
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show(txtTotal.Text);
}
}