C# Smo用户创建的存储过程

C# Smo用户创建的存储过程,c#,sql,smo,C#,Sql,Smo,当我试图使用smo从db中获取存储过程列表时,即使数据库是空的,它也会列出许多存储过程 我希望能够获得非系统过程的存储过程列表。IsSystemObject不工作 ServerConnection serverConnection = new ServerConnection(sqlConnection); myserver = new Server(serverConnection); Database mydb = new Database(); mydb = myserver.Databa

当我试图使用smo从db中获取存储过程列表时,即使数据库是空的,它也会列出许多存储过程

我希望能够获得非系统过程的存储过程列表。IsSystemObject不工作

ServerConnection serverConnection = new ServerConnection(sqlConnection);
myserver = new Server(serverConnection);
Database mydb = new Database();
mydb = myserver.Databases[cmbDbname.Text];
string classGenerated = "";
foreach (StoredProcedure mystr in mydb.StoredProcedures)
{
    if (!mystr.IsSystemObject)
    {
        classGenerated += mystr.Name + Environment.NewLine;
    }
}
spClassText.Text = classGenerated;
在这里,当我删除的!mystr.IsSystemObject子句,它返回许多存储过程,否则不会返回作为测试创建的存储过程。

试试这段代码

if (mystr.Owner != "sys") 
{
        classGenerated += mystr.Name + Environment.NewLine;
} 

使用模式属性,如下所示:

if (mystr.Schema != "sys")
{
    classGenerated += mystr.Name + Environment.NewLine;
}