Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 错误:从字符串转换日期和/或时间时转换失败_C#_Sql Server 2008 - Fatal编程技术网

C# 错误:从字符串转换日期和/或时间时转换失败

C# 错误:从字符串转换日期和/或时间时转换失败,c#,sql-server-2008,C#,Sql Server 2008,如何解决此错误 从字符串转换日期和/或时间时转换失败 我的SQL代码: SELECT RTRIM(invoiceNo) as [Order No.], RTRIM(InvoiceDate) as [Order Date], RTRIM(SubTotal) as [SubTotal], RTRIM(VATPer) as [Vat+ST %], RTRIM(VATAmount) as [VAT+ST Amount], RTRIM(DiscountPer) as

如何解决此错误

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

我的SQL代码:

SELECT 
   RTRIM(invoiceNo) as [Order No.],
   RTRIM(InvoiceDate) as [Order Date],
   RTRIM(SubTotal) as [SubTotal],
   RTRIM(VATPer) as [Vat+ST %],
   RTRIM(VATAmount) as [VAT+ST Amount],
   RTRIM(DiscountPer) as [Discount %],
   RTRIM(DiscountAmount) as [Discount Amount],
   RTRIM(GrandTotal) as [Grand Total],
   RTRIM(TotalPayment) as [Total Payment],
   RTRIM(PaymentDue) as [Payment Due] 
FROM  
   Invoice_Info 
WHERE 
   InvoiceDate BETWEEN @d1 AND @d2 
ORDER BY  
   InvoiceDate desc
我使用C中的SqlCommand调用它,添加以下参数:

cmd.Parameters.Add("@d1", SqlDbType.DateTime, 30, "InvoiceDate").Value = dtpInvoiceDateFrom.Value.Date;
cmd.Parameters.Add("@d2", SqlDbType.DateTime, 30, "InvoiceDate").Value = dtpInvoiceDateTo.Value.Date;

我认为必须从值中删除.Date,因为DateTimePicker.Value.Date只返回字段的日期部分

您还可以将参数更改为以下内容:

cmd.Parameters.Add("@d1", SqlDbType.DateTime).Value = dtpInvoiceDateFrom.Value;
cmd.Parameters.Add("@d2", SqlDbType.DateTime).Value = dtpInvoiceDateTo.Value;

我使用了下面的代码,但它不起作用,并且再次出现错误。如果InvoiceDate确实是datetime列,那么您可以在Select语句中从中删除RTRIM。如果我没有弄错的话,RTRIM只用于字符串值。然后重试sql语句。测试sql查询的另一个选项是从dtpInvoiceDateFrom.Value中获取值,并将其作为值添加到sql Management Studio中的查询中。这将允许您查看查询或参数中是否存在问题。