C# 错误-将varchar数据类型转换为datetime数据类型导致值超出范围-sql
我是一名中学生,目前正在做一个涉及数据库的软件开发项目,对sql几乎一无所知,目前为止,我已经足够使用给我的一本指南了,但我无法摆脱这个错误。我已经把我需要的截图链接起来了,但是如果我遗漏了任何截图,我很乐意知道。我已经在这个网站和其他网站上彻底搜索了这个错误,并决定这是一个不同的情况,然后通常会造成这个错误,或者我的技术知识是如此有限,我无法区分这个差异。我知道毫无疑问我写的代码很差,但是没有时间对所有的东西进行彻底的修改。我不允许直接在上面添加图片,所以我似乎在下面链接了它们 请找一个哑巴学校的学生,如果你有任何其他的建议,如果你愿意,请给出 谢谢你的编辑和格式化建议,正如你所看到的,我并不是棚里最聪明的工具 方法代码:C# 错误-将varchar数据类型转换为datetime数据类型导致值超出范围-sql,c#,sql,database,C#,Sql,Database,我是一名中学生,目前正在做一个涉及数据库的软件开发项目,对sql几乎一无所知,目前为止,我已经足够使用给我的一本指南了,但我无法摆脱这个错误。我已经把我需要的截图链接起来了,但是如果我遗漏了任何截图,我很乐意知道。我已经在这个网站和其他网站上彻底搜索了这个错误,并决定这是一个不同的情况,然后通常会造成这个错误,或者我的技术知识是如此有限,我无法区分这个差异。我知道毫无疑问我写的代码很差,但是没有时间对所有的东西进行彻底的修改。我不允许直接在上面添加图片,所以我似乎在下面链接了它们 请找
public static int AddNewOrder(string OrderAddress, DateTime OrderDate, int
CustID, String OrderDeliveryDate, bool Delivery)
{
using (SqlConnection connection = new
SqlConnection(_connectionString))
{
connection.Open();
string sqlQuery = string.Format("INSERT INTO [Order]
(OrderAddress, OrderDate, CustID, OrderDeliveryDate, Delivery)VALUES('{0}',
'{1}', '{2}', '{3}','{4}')", OrderAddress, OrderDate, CustID,
OrderDeliveryDate, Delivery);
SqlCommand insertCommand = new
SqlCommand(sqlQuery,connection);
int rowsAffected = insertCommand.ExecuteNonQuery();
connection.Close();
return rowsAffected;
}
}
数据输入表单中的代码:
bool Delivery;
int CustID;
string Address;
DateTime OrderDate;
DateTime OrderDeliveryDate;
private void buttonCreateOrder_Click(object sender, EventArgs e)
{
Delivery = checkBoxDelivery.Checked;
CustID = int.Parse(textBoxCustID.Text);
Address = textBoxOrderAddress.Text;
OrderDate = DateTime.Now;
OrderDeliveryDate = dtpOrderDeadlinDate.Value;
int rowsAffected = DAL.OrderFirstFormDAL.AddNewOrder(Address, OrderDate, CustID, OrderDeliveryDate.ToString("yyyy-MM-dd HH:mm:ss"), Delivery);
对于AddNewOrder函数,OrderDeliveryDate定义为字符串。但是,就在ButtonCreateOrder\u Click函数上方,它被定义为日期时间。OrderDeliveryDate参数肯定有问题,我相信您使用的是不存在的日期,例如月值大于12或日值大于30/31(基于月)请尝试根本不使用图像。为代码、数据、错误消息等粘贴格式化文本。编辑器专门为此设置了标记格式。请帮助我们帮助一名哑巴学生。邮政编码,我们可以利用它来获得答案。你的标题说明了一切。您正在使用字符串在日期字段中写入值。字符串不是日期。不必粗鲁亲爱的@jacobi如果我使用日期时间选择器选择日期,格式会有问题吗?ATM我没有自定义格式集。我不知道datepicker是如何开发的,但是调试您的代码,您很可能会看到错误是由您使用OrderDeliveryDate变量的某个地方引起的,特别是当您在某个时刻进行转换时。我将AddNewOrder函数改为使用DateTime,并将OrderDeliveryDate变量输入DateTime中的方法,但错误仍然完全相同,尽管我可能误解了您建议的意图。在调试时,您能检查一下datetimepicker提供的日期及其格式吗?用于OrderDate和OrderDeliveryDate参数。他们总是一模一样吗?另外,请允许我询问您选择的日期是哪一天?对于OrderDate,我只是将其设置为DateTime的值。现在,在本例中,它是'14/02/2018 14:19:41',对于OrderDeliveryDate,我从dtp中选择2月15日,即'15/02/2018 14:19:34'