gpt4 book ai didi

c# - 从 C# 到 MySql 的 InsertQuery

转载 作者:行者123 更新时间:2023-11-29 14:41:32 24 4
gpt4 key购买 nike

我是编程新手,希望有人能帮助我。我想将 C# 中收到的数据存储到 MySql:表应该是变量根据我收到的数据。

string myInsertQuery = String.Format("INSERT INTO volumen (date, time, bidvol, bidprice, askprice, askvol, lastprice, volume) VALUES({0}, {1}, {2}, {3}, {4}, {5}, {6}, {7})", now_date_marketlast, now_time_marketlast, bidvol, bidprice, askprice, askvol, ePrice1, e.Volume);

可以,但是如何定义表变量。如果我将 Volumen 替换为 {0} 和 ,则表将不起作用。请帮我。预先感谢您。

最佳答案

首先,您可能不想做您正在尝试的事情,因为它会让您的代码遭受 SQL 注入(inject)攻击。有多种方法可以使用 SqlCommand 对象来动态创建不对 SQL 注入(inject)开放的 SQL 语句。

话虽这么说,当您将 Volumen 替换为 {0} 时,除非您将表名称添加到值列表的开头,否则 now_date_marketlast 将作为您的表名称插入。正确的写法是:

string myInsertQuery = String.Format("INSERT INTO {0} (date, time, bidvol, bidprice, askprice, askvol, lastprice, volume) VALUES({1}, {2}, {3}, {4}, {5}, {6}, {7}, {8})", "volumen", now_date_marketlast, now_time_marketlast, bidvol, bidprice, askprice, askvol, ePrice1, e.Volume);

您仍然需要提供表名称,您只是在代码中的不同位置执行此操作。同样,由于 SQL 注入(inject),这不是一个好主意。

如果您正在寻找某种方法让 MySQL 根据您传入的数据来确定您正在使用哪个表,那么您就不走运了,因为数据库引擎通常不会以这种方式工作。

关于c# - 从 C# 到 MySql 的 InsertQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7880421/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com