从字符串转换datetime时转换失败。请帮忙解决这个问题 [英] Conversion failed when converting datetime from character string. please help to solve this

查看:169
本文介绍了从字符串转换datetime时转换失败。请帮忙解决这个问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我尝试从C#窗口应用程序插入db时,我得到以下SqlException。

从字符串转换datetime时转换失败。



这是我的SQL查询:

  CREATE   TABLE 订单预订

orderdate datetime
clientname varchar 40 ),
deliverylocation varchar 30 ),
deliverydate datetime



Sqlexception cmd.ExecuteNonQuery();

这是我的添加按钮代码:

 {
SqlConnection cnn = new SqlConnection( @ 服务器= NGENIOUS-WSSDEV\SQLEXPRESS;逸abase = MIC; Trusted_Connection = True);
cnn.Open();
SqlParameter p1 = new SqlParameter( @ orderdate,dateTimePicker1.Text);
SqlParameter p2 = new SqlParameter( @ clientname,comboBox1.Text);
SqlParameter p3 = new SqlParameter( @交货地点,textBox2.Text);
SqlParameter p4 = new SqlParameter( @交货日期,dateTimePicker2.Text);
string query = 插入订单预订值(' + p1.Value + ',' + p2.Value + ',' + p3.Value + ',' + p4.Value + ');
SqlCommand cmd = new SqlCommand(query,cnn);

cmd.ExecuteNonQuery();
cnn.Close();

button2.Enabled = false ;
}



我已添加此代码:

  SELECT   CONVERT  VARCHAR  10 ),GETDATE(), 120  AS  [YYYY-MM- DD] 



但同样的错误请帮忙:(



时间不在sql server中显示数据库 :(



在此先感谢:rose :: rose:

解决方案

DateTime date1 = Convert.ToDateTime(dateTimePicker1.Text);

DateTime date2 = Convert.ToDateTime(dateTimePicker2.Text);

SqlCommand cmd = new SqlCommand(insert into dep( orderdate,clientname,deliverylocation,deliverydate)values(@ orderdate,@ clientname,@ deliverylocation,@ deliverydate),con);



cmd.Parameters.AddWithValue( @orderdate,date1);

cmd.Parameters.AddWit hValue(@ clientname,comboBox1.SelectedItem.ToString());

cmd.Parameters.AddWithValue(@ deliverylocation,textBox2.Text);

cmd。 Parameters.AddWithValue(@ deliverydate,date2);

con.Open();

cmd.ExecuteNonQuery();

con。关闭();



只需复制并粘贴按钮点击



它将运行


在insert语句中直接传递dateTimePicker1,dateTimePicker2的值

DateTime date1 = Convert.ToDateTime(dateTimePicker1.Text);

SqlCommand cmd = new SqlCommand(insert into dep(DepName,Date)values(@ d,@ da),con);



cmd.Parameters.AddWithValue(@ d ,textBox1.Text);

cmd.Parameters.AddWithValue(@ da,date1);

con.Open();

cmd.ExecuteNonQuery();

con.Close();

它正在运行使用它。



祝你好运。



无需在表格def中进行更改萌发的

I get the following SqlException when i am trying to insert into db from C# window application.

Conversion failed when converting datetime from character string.


This is my SQL Query:

CREATE TABLE orderbooking
(
	orderdate datetime ,
	clientname varchar(40) ,
	deliverylocation varchar(30) ,
	deliverydate datetime
) 


Sqlexception on cmd.ExecuteNonQuery();
This is my Add button code:

    {
    SqlConnection cnn = new SqlConnection(@"Server=NGENIOUS-WSSDEV\SQLEXPRESS;Database=MIC;Trusted_Connection= True");
    cnn.Open();
    SqlParameter p1 = new SqlParameter("@orderdate", dateTimePicker1.Text);
    SqlParameter p2 = new SqlParameter("@clientname", comboBox1.Text);
    SqlParameter p3 = new SqlParameter("@Delivery Location", textBox2.Text);
    SqlParameter p4 = new SqlParameter("@Delivery Date", dateTimePicker2.Text);
    string query = "insert into orderbooking values('" + p1.Value + "','" + p2.Value + "','" + p3.Value + "','" + p4.Value + "')";
    SqlCommand cmd = new SqlCommand(query, cnn);

    cmd.ExecuteNonQuery();
    cnn.Close();

    button2.Enabled = false;
}


I have added this code:

SELECT CONVERT(VARCHAR(10), GETDATE(), 120) AS [YYYY-MM-DD]


but same error please help :(

Timing is not displaying in sql server database :(

Thanks in Advance :rose::rose:

解决方案

DateTime date1 = Convert.ToDateTime(dateTimePicker1.Text);
DateTime date2 = Convert.ToDateTime(dateTimePicker2.Text);
SqlCommand cmd = new SqlCommand("insert into dep(orderdate ,clientname ,deliverylocation ,deliverydate )values(@orderdate,@clientname ,@deliverylocation ,@deliverydate )", con);

cmd.Parameters.AddWithValue("@orderdate",date1 );
cmd.Parameters.AddWithValue("@clientname ", comboBox1.SelectedItem.ToString());
cmd.Parameters.AddWithValue("@deliverylocation ", textBox2.Text);
cmd.Parameters.AddWithValue("@deliverydate ", date2);
con.Open();
cmd.ExecuteNonQuery();
con.Close();

Just Copy and Paste on buttonClick

It will Run


Pass Directly values of dateTimePicker1,dateTimePicker2 in insert statement


DateTime date1 = Convert.ToDateTime(dateTimePicker1.Text);
SqlCommand cmd = new SqlCommand("insert into dep(DepName,Date)values(@d,@da)", con);

cmd.Parameters.AddWithValue("@d", textBox1.Text);
cmd.Parameters.AddWithValue("@da", date1);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
it is running use it .

Good Luck.

no need to make changes in table defination


这篇关于从字符串转换datetime时转换失败。请帮忙解决这个问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆