Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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# 如何在C SQL查询中使用X列长度对多个列名进行string.format_C#_Mysql - Fatal编程技术网

C# 如何在C SQL查询中使用X列长度对多个列名进行string.format

C# 如何在C SQL查询中使用X列长度对多个列名进行string.format,c#,mysql,C#,Mysql,我想从表中选择{0},{1},…,但在尝试字符串时遇到问题。请格式化我拥有的列名,但不确定我拥有多少列名。这是我到目前为止所拥有的 String query = "SELECT"; for (int i = 0; i < requestedColumns.Count; i++) { query += " {" + i.ToString() + "},"; } query = query.Remove(query.Length - 1) + " WHERE id=@id LIMIT

我想从表中选择{0},{1},…,但在尝试字符串时遇到问题。请格式化我拥有的列名,但不确定我拥有多少列名。这是我到目前为止所拥有的

String query = "SELECT";
for (int i = 0; i < requestedColumns.Count; i++)
{
    query += " {" + i.ToString() + "},";
}

query = query.Remove(query.Length - 1) + " WHERE id=@id LIMIT 1";
这就是我遇到麻烦的地方:

for (int i = 0; i < requestedColumns.Count; i++)
{
    query = String.Format(query,requestedColumns[i]);
}
这是我得到的错误:

基于Indexzero的必须大于或等于零,且小于参数列表的大小

我不知道如何格式化语法,希望您能提供帮助。

您可以使用


谢谢,这对SQL注入的保护安全吗?@kevinyu,因为您设置了列名,所以不能使用SQL参数。即使您使用String.Format或String.Join,您也需要验证用户输入
var query = "SELECT " +string.Join(",", requestedColumns);
 var query = "SELECT " +string.Join(",", requestedColumns) + " WHERE id=@id LIMIT 1";