简体   繁体   English

从Winforms中的字符串转换日期和/或时间时转换失败

[英]Conversion failed when converting date and/or time from character string in winforms

This is the Winforms C# code: 这是Winforms C#代码:

dateTimePicker3.Format = DateTimePickerFormat.Custom;
dateTimePicker3.CustomFormat = "dd-MM-yyyy";
dateTimePicker4.Format = DateTimePickerFormat.Custom;
dateTimePicker4.CustomFormat = "dd-MM-yyyy";

string connectionstring = @"Data Source=.;Initial Catalog=ExpenseManagerDB;Integrated Security=True";

SqlConnection sqlconn = new SqlConnection(connectionstring);
sqlconn.Open();

string query = @"sp_Total";
SqlCommand cmd = new SqlCommand(query, sqlconn);
cmd.CommandType = CommandType.StoredProcedure;

cmd.Parameters.Add("@date1", dateTimePicker3.Value);
cmd.Parameters.Add("@date2", dateTimePicker4.Value);

SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();

Stored procedure follows: 存储过程如下:

Alter PROCEDURE sp_Total @date1 date,@date2 date

AS
BEGIN

Select SUM(Price) from EntryDetails where Name = 'Sreejith' and Date between '@date1' and '@date2'
Select SUM(Price) from EntryDetails where Name = 'Siva' and Date between '@date1' and '@date2'
Select SUM(Price) from EntryDetails where Name = 'Pavithran' and Date between '@date1' and '@date2'
Select SUM(Price) from EntryDetails where Name = 'Nithin' and Date between '@date1' and '@date2'

END
GO

I'm getting this error Conversion failed when converting date and/or time from character string 我收到此错误,从字符串转换日期和/或时间时转换失败

it is not winforms, it is sql error 它不是Winforms,而是SQL错误

'@date1' and '@date2' are not dates but strings “ @ date1”和“ @ date2”不是日期,而是字符串

remove '' in stored procedure 在存储过程中删除“

Alter PROCEDURE sp_Total @date1 date,@date2 date

AS
BEGIN
Select SUM(Price) from EntryDetails where Name = 'Sreejith' and Date between @date1 and @date2
Select SUM(Price) from EntryDetails where Name = 'Siva' and Date between @date1 and @date2
Select SUM(Price) from EntryDetails where Name = 'Pavithran' and Date between @date1 and @date2
Select SUM(Price) from EntryDetails where Name = 'Nithin' and Date between @date1 and @date2
END

UPDATE UPDATE

Alter PROCEDURE sp_Total @date1 date, @date2 date

AS
BEGIN
  Select Name, SUM(Price) as SumPrice
  from EntryDetails 
  where 
    (Date between @date1 and @date2)
    and Name in ('Sreejith','Siva','Pavithran','Nithin')
  group by Name
END

You need to pass @date1 and @date2 as Date types to the procedure, because the procedure takes in 2 params of type Date . 您需要将@date1@date2作为Date类型传递给该过程,因为该过程接受2个类型为Date参数。

Hence in your code, you can change something as below: 因此,您可以在代码中进行如下更改:

    cmd.Parameters.Add("@date1", dateTimePicker3.Value.Date);
    cmd.Parameters.Add("@date2", dateTimePicker4.Value.Date);

Try it, let us know if you face any further problems. 尝试一下,让我们知道您是否还有其他问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 从字符串转换日期和/或时间时转换失败 - Conversion failed when converting date and /or time from character string 从字符串转换日期和/或时间时转换失败 - Conversion failed when converting date and /or time from character string 从字符串错误4转换日期和/或时间时转换失败 - Conversion failed when converting date and/or time from character string error 4 从字符串转换日期和/或时间时转换失败 - Conversion failed when converting date and/or time from character string 错误“从字符串转换日期和/或时间时转换失败” - Error “Conversion failed when converting date and/or time from character string” 从字符串转换日期和/或时间时,DateTime转换失败 - DateTime conversion failed when converting date and/or time from character string 问题:从字符串转换日期和/或时间时转换失败 - Problem: Conversion failed when converting date and/or time from character string 错误:从字符串转换日期和/或时间时转换失败 - Error: Conversion failed when converting date and/or time from character string SqlException:从字符串转换日期和/或时间时转换失败 - SqlException: Conversion failed when converting date and/or time from character string 从字符串转换日期和/或时间时,如何转换失败 - How to Conversion failed when converting date and/or time from character string
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM