为什么这个参数化的 sql 不返回任何东西,而非参数化的呢?

Rik*_*ika 1 sql-server

我试图在我的一个查询中使用 sql 参数,并注意到当我这样做时,它只是不返回任何东西!而无参数化的一个工作得很好。
为什么 ?
无参数化一:

string columnCommentsQuery = string.Format("SELECT   * FROM   ::fn_listextendedproperty(NULL, 'user', 'dbo', 'table', '{0}', 'column', default)", table[2].ToString());

    DataTable comments = new DataTable();
    SqlCommand sql = new SqlCommand(columnCommentsQuery, conn);
    conn.Open();
    SqlDataAdapter da = new SqlDataAdapter(sql);
    da.Fill(comments);
    conn.Close();
Run Code Online (Sandbox Code Playgroud)

参数化一:

string columnCommentsQuery = "SELECT   * FROM   ::fn_listextendedproperty(NULL, 'user', 'dbo', 'table', @tb, 'column', default)";
     DataTable comments = new DataTable();
     SqlCommand sql = new SqlCommand(columnCommentsQuery, conn);
     sql.Parameters.AddWithValue("tb", "'" + table[2].ToString() + "'");
     conn.Open();
     SqlDataAdapter da = new SqlDataAdapter(sql);
     da.Fill(comments);
     conn.Close();
Run Code Online (Sandbox Code Playgroud)

小智 5

尝试改变

sql.Parameters.AddWithValue("tb", "'" + table[2].ToString() + "'");
Run Code Online (Sandbox Code Playgroud)

sql.Parameters.AddWithValue("tb", table[2].ToString() );
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。