C#MySQL从表中选择表名是变量的表

时间:2017-07-20 22:55:44

标签: c# mysql

我有一个包含用户创建的表的数据库,这显然意味着我不知道之前调用了哪些表,所以我不能像其他人那样访问它们:

"SELECT FROM table_name"

为了解决这个问题,我尝试的第一种方法是使用如下参数:

MySqlCommand command = new MySqlCommand("SELECT FROM @table");
command.Parameters.AddWithValue("@table", table_name);

但是这会导致错误,我认为这是因为你不能使用参数来表示表名和列名。 解决这个问题的第二种方法我只是将表的名称添加到字符串中:

string tableName = "table_name";
MySqlCommand command = new MySqlCommand("SELECT FROM " + tableName.ToString());

但据我所知,这很容易受到SQL注入等攻击。所以我的问题是访问表名是变量的表的最佳/最安全的方法是什么。

非常感谢任何帮助,在此先感谢

0 个答案:

没有答案