2

我的 winform 应用程序中有一个富文本字段,我可以在其中编写 sql 脚本,并且需要检查书面脚本中是否存在任何问题。有没有办法在使用 c# 执行之前执行相同的任务?任何类型的建议都受到高度赞赏。

谢谢,阿尼尔

4

1 回答 1

3

如果您只是尝试验证语法(而不是数据库对象的存在),您可以查看TSqlParser 类

您需要将以下引用添加到您的项目中:

  • Microsoft.Data.Schema.ScriptDom
  • Microsoft.Data.Schema.ScriptDom.Sql

一种简单的方法是编辑您的.csproj文件并添加以下两个条目以及现有条目并重新加载项目:

<ItemGroup>
  <Reference Include="Microsoft.Data.Schema.ScriptDom.Sql" />
  <Reference Include="Microsoft.Data.Schema.ScriptDom" />
  <!-- other Reference tags -->
</ItemGroup>

一些示例用法:

private void btnParse_Click(object sender, EventArgs e)
{
    var parser = new TSql100Parser(true);
    IList<ParseError> errors;
    var result = parser.Parse(new StringReader(richTextBox1.Text), out errors);
    // TODO: check the errors
}
于 2013-07-17T08:52:28.033 回答