this.command.CommandText = "\"GetForeignKeysTable\"";
this.command.CommandType = CommandType.StoredProcedure;
this.command.Parameters.AddWithValue("tableName", resource);
FKDataTable.Load(this.command.ExecuteReader());
在第四行,我收到一个错误:GetForeignKeysTable(tableName:= text)不存在。 PosrtgresSQL:
CREATE OR REPLACE FUNCTION "GetForeignKeysTable"(tableName text)
RETURNS TABLE ("FKFieldName" integer, "PKTableName" text) AS $$
BEGIN
RETURN QUERY SELECT "Id", "FIO" FROM tableName;
END;
$$ LANGUAGE plpgsql;
答案 0 :(得分:0)
您可以使用动态sql将表名作为参数传递。请注意,通常不建议这样做。
你的sql应该是一个字符串,然后你连接接收到的表名然后执行str sql string
.....create procedure etc etc etc .......
/* Build Transact-SQL String with parameter value */
SET @SQLQuery = 'SELECT * FROM ' + myTable
/* Execute Transact-SQL String */
EXECUTE(@SQLQuery)
答案 1 :(得分:0)
我可能在这里充满了sh * t ..但我认为param必须以“@”IE“@tablename”开头,同时确保“resource”是一个字符串,而不是一个类/什么......