Update database with date format

自古美人都是妖i 提交于 2019-12-12 03:08:17

问题


I found some threads here in the forum related to this problem but they didn't help me. I just want to update my database with a date value. These come from a Textfile (written there as 2014-10-02 for example). Now I tried this (which was mentioned in the other threads):

 String connectionQuery = form1.conString.Text;
                SqlConnection connection = new SqlConnection(connectionQuery);
                SqlCommand sqlComInsert = new SqlCommand(@"INSERT INTO [" + form1.tableName.Text + "] ([" + form1.CusId.Text + "],["+ form1.date.Text +"],[" + form1.cusName.Text + "]) VALUES('" + cusId[i] + "',convert(date,'" + date[i] + "',104),'" + "','" + cusName[i] + "')", connection);

  sqlComInsert.Connection.Open();
                sqlComInsert.ExecuteNonQuery();
                sqlComInsert.Connection.Close();

Now when I leave the "'" out ("',convert / "',104)) he tells me that the syntax is incorrect near 2013 (the beginning of my date). When I write it like above then I get: String or binary data would be truncated.

What is this? I tried also to convert the date with:

  for (int i = 0; i < typeDelDate.Count; i++)
            {
                unFormatedDate = date[i];
                formatedDate = unFormatedDate.ToString("dd/MM/yyyy");
                dateFormat.Add(formatedDate);
            }

but I get still the same errors. How can I update my values? the column type is "date".


回答1:


Use parametrized queries instead of slapping strings together:

var commandText = "insert (column) values (@dt);";
var cmd = new SqlCommand(commandText, connection);

cmd.Parameters.AddWithValue("dt", DateTime.ParseExact(dateString, "yyyy-MM-dd"));

cmd.ExecuteNonQuery();

Do not pass values into queries by adding strings - if possible, you should always use parameters. It saves you a lot of trouble converting to proper values (different for different locales etc.), it's more secure, and it helps performance.



来源:https://stackoverflow.com/questions/29212664/update-database-with-date-format

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!