[英]Conversion failed when converting date and/or time from character string in winforms
這是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();
存儲過程如下:
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
我收到此錯誤,從字符串轉換日期和/或時間時轉換失敗
它不是Winforms,而是SQL錯誤
“ @ date1”和“ @ date2”不是日期,而是字符串
在存儲過程中刪除“
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
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
您需要將@date1
和@date2
作為Date
類型傳遞給該過程,因為該過程接受2個類型為Date
參數。
因此,您可以在代碼中進行如下更改:
cmd.Parameters.Add("@date1", dateTimePicker3.Value.Date);
cmd.Parameters.Add("@date2", dateTimePicker4.Value.Date);
嘗試一下,讓我們知道您是否還有其他問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.