我想实现这个目标:
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 。”
答案 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("]");