2013-07-17 48 views
2

我在我的winform應用程序中有一個豐富的文本字段,我可以在其中編寫sql腳本 並需要檢查腳本中是否存在任何問題。 有沒有什麼辦法可以在使用c#執行之前執行相同的任務? 任何類型的建議非常感謝。在執行前使用c解析sql腳本#

感謝, 阿尼爾

+0

u能詳細烏爾問題?你解析sql腳本是什麼意思? –

+0

@Newton謝赫,我已經更新了我的要求。你想再次檢查嗎? – aks

+0

@阿尼我仍然認爲這不夠。你想檢查什麼? –

回答

3

如果你只是想驗證語法(而不是數據庫對象的存在),你可以看看的TSqlParser Class

您需要將以下引用添加到您的項目:

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

一個簡單的方法是編輯您的.csproj文件,並添加以下兩個條目以及現有的和reloa d項目:

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