Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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#Datetime转换为MySql Datetime格式_C#_Mysql_Datetime - Fatal编程技术网

将C#Datetime转换为MySql Datetime格式

将C#Datetime转换为MySql Datetime格式,c#,mysql,datetime,C#,Mysql,Datetime,我一直在想如何将c#中的当前datetime添加到mysql列中,该属性/列也是“datetime”格式。我正在写这段代码 if (comboBox1.Text == "Cash On Delivery") { MessageBox.Show("Your order has been placed.","",MessageBoxButtons.OK); string timeString = DateTime.Now.ToStr

我一直在想如何将c#中的当前datetime添加到mysql列中,该属性/列也是“datetime”格式。我正在写这段代码

   if (comboBox1.Text == "Cash On Delivery")
        {
           MessageBox.Show("Your order has been placed.","",MessageBoxButtons.OK);

           string timeString = DateTime.Now.ToString("YYYY-MM-DD HH:MM:SS");

           string constring = "datasource=localhost;port=3306;username=root;password=root";
           string query = "insert into artgallery.payment_method where payment_method ='" +comboBox1.Text+ "' AND payment_date='" +formatForMySql+ "' AND payment_amount = '" +variables.total_amount+ "' ";

         //rest of the code

        }

我发现了一些语法错误,与我试图在“payment\u date”列中插入的时间字符串有关。

正确的答案是停止从这样开始构建SQL。使用参数化SQL,然后指定
DateTime
值作为参数值-代码中根本不需要字符串表示

现在还不清楚您使用的是哪个驱动程序(MySQL有两个驱动程序,IIRC),但是您应该查看您使用的任何命令类型的
参数
属性

使用参数化SQL非常重要,这不仅是为了避免这样的转换问题,也是为了防止。在我看来,它还使代码更易于阅读。

这样说吧

INSERT INTO table_name( date_column) VALUES (STR_TO_DATE('2014-12-31 00:00:00','%Y-%m-%d %H:%i:%S')
另外,你把M(月的平均值)放在两个月里,分钟。。。 请在此处再次检查您的格式


顺便说一句,没有
YYYY
DD
SS
的可能重复项。自定义说明符区分大小写。而
mm
是几分钟,而
mm
是几个月。我还没有研究过参数化SQL。你能告诉我这种转换可能会出现什么错误吗?@MirzaTaimoorBaig:你已经发现,你需要确保执行正确的转换,并且在代码中的任何地方都要小心执行。为什么要继续使用这种对字符串参数不安全的方法,而不是找出如何使用公认的最佳实践在SQL查询中提供值?我完全同意这个答案,以防止注入攻击,由于提问者已经将其原始数据从用户输入到sql语句中。@ToonSuperLove:如果所有的值都是
DateTime
或数字值,则不太可能进行sql注入攻击(虽然是-但在任何地方使用参数化sql都是值得的,依我看)。