C# 如何使用dapper解析Sql脚本?(仅在+;整洁上设置)
我想检查并解析sql脚本,所以我搜索了它,发现了类似这样的内容C# 如何使用dapper解析Sql脚本?(仅在+;整洁上设置),c#,sql,sql-server,parsing,dapper,C#,Sql,Sql Server,Parsing,Dapper,我想检查并解析sql脚本,所以我搜索了它,发现了类似这样的内容 SET PARSEONLY ON SELECT * FROM [dbo].[Categories] --Query To Parse public bool IsValidSqlScript(string sqlScript) { using (SQLConnection) { using (SQLTransaction) {
SET PARSEONLY ON
SELECT * FROM [dbo].[Categories] --Query To Parse
public bool IsValidSqlScript(string sqlScript)
{
using (SQLConnection)
{
using (SQLTransaction)
{
var status = SQLConnection.Execute("SET PARSEONLY ON " + sqlScript);
// OR
// var status = SQLConnection.Query("SET PARSEONLY ON " + sqlScript);
}
}
return status;
}
我用的是简洁的,所以我写的方法是这样的
SET PARSEONLY ON
SELECT * FROM [dbo].[Categories] --Query To Parse
public bool IsValidSqlScript(string sqlScript)
{
using (SQLConnection)
{
using (SQLTransaction)
{
var status = SQLConnection.Execute("SET PARSEONLY ON " + sqlScript);
// OR
// var status = SQLConnection.Query("SET PARSEONLY ON " + sqlScript);
}
}
return status;
}
如何获取状态,如果存在任何错误,如何获取错误列表
SET PARSEONLY ON
SELECT * FR OM [dbo].[Categories] --Query To Parse
>>> false
>>> Msg 102, Level 15, State 1, Line 2 Incorrect syntax near 'FR'.
很接近,但您的状态变量有问题。您可以使用语句在SQLTransaction中声明它,然后尝试在该范围之外返回它 您需要使用try/catch块来执行查询,这样您就可以知道
sqlScript
何时有效。如果输入catch块,则该块无效,如果不输入,则该块有效
代码应该类似于以下内容
public bool IsValidSqlScript(string sqlScript)
{
bool status;
try
{
using (SQLConnection)
{
using (SQLTransaction)
{
SQLConnection.Execute("SET PARSEONLY ON " + sqlScript);
}
}
status = true;
}
catch(Exception e)
{
status = false;
)
return status;
}