使用c#执行之前解析sql脚本

时间:2013-07-17 08:27:18

标签: winforms sql-server-2008 c#-4.0

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

谢谢, 阿尼尔

1 个答案:

答案 0 :(得分:3)

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

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

  • 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
}