Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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# 若我尝试只向数据库中插入时间值,则会追加Datevalue_C#_Datetime_Sql Server 2005_Datetime Format - Fatal编程技术网

C# 若我尝试只向数据库中插入时间值,则会追加Datevalue

C# 若我尝试只向数据库中插入时间值,则会追加Datevalue,c#,datetime,sql-server-2005,datetime-format,C#,Datetime,Sql Server 2005,Datetime Format,表架构: CREATE TABLE [dbo].[Sales_main]( [Receipt_no] [decimal](18, 0) NOT NULL, [Receipt_Date] [datetime] NOT NULL, [Receipt_Time] [datetime] NOT NULL, [User_id] [nvarchar](255) NOT NULL, [Total_amt] [float] NOT NULL, [Discount] [float] NOT NULL, [To_p

表架构:

CREATE TABLE [dbo].[Sales_main](
[Receipt_no] [decimal](18, 0) NOT NULL,
[Receipt_Date] [datetime] NOT NULL,
[Receipt_Time] [datetime] NOT NULL,
[User_id] [nvarchar](255) NOT NULL,
[Total_amt] [float] NOT NULL,
[Discount] [float] NOT NULL,
[To_pay] [float] NOT NULL,
[Paid] [float] NOT NULL,
[Balance] [float] NOT NULL,
[roundoff_amount] [float] NOT NULL,
[CreatedID] [varchar](50) NULL,
[CreatedDateTime] [smalldatetime] NULL,
[UpdatedID] [varchar](50) NULL,
[UpdatedDateTime] [smalldatetime] NULL)
我的sql查询如下所示

sql = "insert into Sales_main(Receipt_no,Receipt_Date,Receipt_Time,User_id,Total_amt,Discount,To_pay,Paid,Balance,roundoff_amount,CreatedID,CreatedDateTime) values(" + bosales.Receipt_no + ",'" + bosales.Receipt_Date.ToString("dd-MMM-yyyy") + "','" + bosales.Receipt_Time.ToString("t") + "','" + bosales.User_id + "'," + bosales.Total_amt + "," + bosales.Discount_amt + "," + bosales.Amt_tobe_paid + "," + bosales.Amt_paid + "," + bosales.Balance + "," + bosales.Roundoff + ",'" + bosales.Createdid + "','" + bosales.Createddate.ToString("dd-MMM-yyyy") + "')";
此查询的输出为:

43  |27/01/2015 12:00:00 AM |01/01/1900 5:00:00 PM  |admin  |20 |0  |20 |20 |0  |0  |admin  |27/01/2015 12:00:00 AM |NULL   |NULL
我只希望插入时间值(下午5:00:00),而不是1900年1月1日下午5:00:00

请帮帮我。

好吧,我想你做错了什么

用日期时间值的字符串表示形式插入日期时间值是个坏主意。 你在做什么

不要那样做阅读:

SQL Server具有定义一天时间的。MySQL也有

NET Framework的,它将当前实例的时间作为

然后您可以将您的值插入为

bosales.Receipt_Time.TimeOfDay
转到键入的
时间列

而且,您应该始终使用。这种类型的字符串连接对攻击是开放的


注意:看起来您正在使用SQL Server 2005,而此版本没有时间类型。您可以阅读如何将其转换为
datetime

发布您的表模式,即创建表sqlI添加了模式。请检查我使用的是SQLServer2005,它没有时间数据类型。我尝试使用TimeOfDay属性。但是它在插入时给了我错误。@SuhasKrishna Read:Use
DateTime
但是
Convert
在您的sql中。我试图使用Convert.ToDateTime(bosales.Receipt\u Time.TimeOfDay)语句进行转换。它显示错误消息“无法将“System.TimeSpan”类型的对象强制转换为“System.IConvertible”。@SuhasKrishna
bosales.Receipt\u Time
不是一个已存在的日期时间吗?你不需要转换它,是的。我知道。只是因为你的建议才试过的。帮我一个摆脱困境的方法
bosales.Receipt_Time.TimeOfDay