ScriptDom + DeleteStatement
ScriptDom + DeleteStatement
我想在任何 "DeclareTableVariableStatement" 之后插入 "DeleteStatement"
但我不知道怎么办!
这是我的示例代码。
public override void Visit(StatementList node)
{
foreach (DeclareTableVariableStatement declareTableVariableStatement in node.Statements.Where(a => a is DeclareTableVariableStatement).ToList())
{
BeginEndBlockStatement deleteBeginEndBlockStatement = new BeginEndBlockStatement()
{
StatementList = new StatementList()
};
DeleteStatement deleteStatement = new DeleteStatement()
{
DeleteSpecification=new DeleteSpecification()
{
Target= ???
}
};
deleteBeginEndBlockStatement.StatementList.Statements.Add(deleteStatement);
node.Statements.Insert(node.Statements.IndexOf(declareTableVariableStatement) + 1, deleteBeginEndBlockStatement);
}
base.Visit(node);
}
我找到了解决方案!
public override void Visit(StatementList node)
{
foreach (DeclareTableVariableStatement declareTableVariableStatement in node.Statements.Where(a => a is DeclareTableVariableStatement).ToList())
{
BeginEndBlockStatement deleteBeginEndBlockStatement = new BeginEndBlockStatement()
{
StatementList = new StatementList()
};
DeleteStatement deleteStatement = new DeleteStatement()
{
DeleteSpecification = new DeleteSpecification()
{
Target = new VariableTableReference()
{
Variable = new VariableReference()
{
Name = declareTableVariableStatement.Body.VariableName.Value
}
}
}
};
deleteBeginEndBlockStatement.StatementList.Statements.Add(deleteStatement);
node.Statements.Insert(node.Statements.IndexOf(declareTableVariableStatement) + 1, deleteBeginEndBlockStatement);
}
base.Visit(node);
}
我想在任何 "DeclareTableVariableStatement" 之后插入 "DeleteStatement" 但我不知道怎么办! 这是我的示例代码。
public override void Visit(StatementList node)
{
foreach (DeclareTableVariableStatement declareTableVariableStatement in node.Statements.Where(a => a is DeclareTableVariableStatement).ToList())
{
BeginEndBlockStatement deleteBeginEndBlockStatement = new BeginEndBlockStatement()
{
StatementList = new StatementList()
};
DeleteStatement deleteStatement = new DeleteStatement()
{
DeleteSpecification=new DeleteSpecification()
{
Target= ???
}
};
deleteBeginEndBlockStatement.StatementList.Statements.Add(deleteStatement);
node.Statements.Insert(node.Statements.IndexOf(declareTableVariableStatement) + 1, deleteBeginEndBlockStatement);
}
base.Visit(node);
}
我找到了解决方案!
public override void Visit(StatementList node)
{
foreach (DeclareTableVariableStatement declareTableVariableStatement in node.Statements.Where(a => a is DeclareTableVariableStatement).ToList())
{
BeginEndBlockStatement deleteBeginEndBlockStatement = new BeginEndBlockStatement()
{
StatementList = new StatementList()
};
DeleteStatement deleteStatement = new DeleteStatement()
{
DeleteSpecification = new DeleteSpecification()
{
Target = new VariableTableReference()
{
Variable = new VariableReference()
{
Name = declareTableVariableStatement.Body.VariableName.Value
}
}
}
};
deleteBeginEndBlockStatement.StatementList.Statements.Add(deleteStatement);
node.Statements.Insert(node.Statements.IndexOf(declareTableVariableStatement) + 1, deleteBeginEndBlockStatement);
}
base.Visit(node);
}