c# - 如何将简单日期从文本框转换为mysql中的日期时间?

标签 c# mysql asp.net

我在文本框中有一个日期,例如 2014-17-04 即(YYYY-DD-MM)我不想将其放入数据库中,例如 2014-04-17 00:00:00 ,那么我该怎么做。我尝试过如下..

sSQL = "INSERT INTO Date_Master(BirthDate) VALUES('"+Convert.ToDateTime(txtBirthdate.Text)+"')";

但它给出错误“字符串未被识别为有效的日期时间”。那么如何使用 MySQL DATE_FORMAT 在数据库中插入值呢?

最佳答案

使用 DateTime TryParse 或 TryParseExact 测试您的输入

DateTime dt;
if (DateTime.TryParseExact(txtBirthdate.Text, "yyyy-dd-MM", CultureInfo.InvariantCulture, DateTimeStyles.None,out dt))
{
     var insert = "INSERT INTO Date_Master(BirthDate) VALUES(@birthdate)";
     using (SqlCommand cmd = new SqlCommand(insert, yourConnection))
     {
         cmd.CommandType = CommandType.Text;     
         cmd.Parameters.AddWithValue("@birthdate",dt);

         cmd.Connection.Open();
         cmd.ExecuteNonQuery();                  
      }
 }

yyyy-dd-MM 与您的预期输入匹配。正如 @JonSkeet 所补充的,始终使用参数化查询来避免注入(inject)

关于c# - 如何将简单日期从文本框转换为mysql中的日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23219598/

相关文章:

c# - 用于远程 Web 服务的 Windows 虚拟磁盘

c# - 在 MVVM 中使用 CommandParameter 传递类变量

MySQL查询优化改进

java - 使用另一个表的结果将数据插入到多个表中

asp.net - 动态创建和共享 Google 云端硬盘文件夹

c# - 3 层架构中的 SQL 依赖性和 SignalR

c# - 如何将部分 View 转换为字符串,以便我可以在信号中心中使用它?

c# - 线程 :Lock on generic dictionary

mysql - 使用 SELECT/JOIN 触发插入

javascript - $ ('#' + CommentBoxId).val();不接