C# - 使用字符串中的参数传递的字符串

时间:2016-07-21 17:16:45

标签: c#

我想实现这个目标:

public void SQLInfo(string column)
{
    SqlConnection Connect = new SqlConnection(
        "Server=server;Database=db;User ID=user;Password=pass;");
    Connect.Open();        
    SqlCommand com = new SqlCommand(
        "select distinct [column] from [dbo].[ServerAttributes]");
    SqlDataReader reader = com.ExecuteReader();
}

我没找到关于此的文档。是否有任何特定的方法来使用通过字符串中的参数传递的字符串?例如,在Powershell中,您可以使用'$'来表示字符串中的变量。 “这是你正在努力的 $ server 。”

3 个答案:

答案 0 :(得分:1)

是的,您可以使用string.Format()之类的

public void SQLInfo(string column)
        {
  string query = string.Format("select distinct {0} from [dbo].[ServerAttributes]", column);
  SqlCommand com = new SqlCommand(query);
  SqlDataReader reader = com.ExecuteReader();

答案 1 :(得分:0)

使用低于6的C#时,请使用字符串格式化程序

string command = string.Format("SELECT DISTINCT[{0}] FROM[dbo].[ServerAttributes]", column);

对于C#6,你有字符串文字运算符$它被转换为与先前版本相同的逻辑,但使代码更加可读。

string command = $"SELECT DISTINCT[{column}] FROM[dbo].[ServerAttributes];

答案 2 :(得分:0)

如果您使用的是C#6

,则可以使用字符串插值
public void SQLInfo(string column)
{
    SqlConnection Connect = new SqlConnection(
        "Server=server;Database=db;User ID=user;Password=pass;");
    Connect.Open();        
    SqlCommand com = new SqlCommand(
        $"select distinct [{column}] from [dbo].[ServerAttributes]");
    SqlDataReader reader = com.ExecuteReader();
}

否则使用string.Format

public void SQLInfo(string column)
{
    SqlConnection Connect = new SqlConnection(
        "Server=server;Database=db;User ID=user;Password=pass;");
    Connect.Open();        
    SqlCommand com = new SqlCommand(
        string.Format("select distinct [{0}] from [dbo].[ServerAttributes]",column));
    SqlDataReader reader = com.ExecuteReader();
}

注意如果你打算这样做会建议至少检查以确保字符串没有引入'['字符

column = column.Remove("]");