繁体   English   中英

创建ASP.Net成员数据库的代码

[英]Code to create ASP.Net membership database

在我自己写这篇文章之前,是否有一个ac#方法可以创建由aspnetregsql安装的表,存储过程和视图?

据我所知,没有API可以直接执行此操作aspnet_regsql.exe工具仅引用磁盘上的脚本文件。

首先了解如何自行实现:

您可以通过Process.Start手动执行aspnet_regsql.exe

或者,您可以从命令行运行该程序,并使用命令行选项转储脚本。 然后将这些脚本编辑为与数据库无关(或由您自己决定),将这些脚本作为嵌入式资源存储在您的应用程序中,在运行时提取它们,然后使用SqlConnectionExecuteNonQuery对数据库运行这些脚本。

这是aspnet_regsql.exe的命令行选项:

http://msdn.microsoft.com/zh-CN/library/ms229862(v=vs.80).aspx

这是我用来实现第二个选项的一些代码:

ExecuteSqlScriptResource("MyDb", "MyAssemblyName.Scripts.aspnet_regsql_add.sql");

// ...

static void ExecuteSqlScriptResource(string connectionName, string resourcePath)
{
    using (Stream scriptStream = Assembly.GetExecutingAssembly()
        .GetManifestResourceStream(resourcePath)
        )
    {
        if (scriptStream == null)
        {
            WriteLine(string.Format("Failed to open resource {0}", resourcePath));
            return;
        }

        using (
            var sqlConnection = new SqlConnection(
                ConfigurationManager
                    .ConnectionStrings[connectionName].ConnectionString
                )
            )
        {
            using (var streamReader = new StreamReader(scriptStream))
            {
                var svrConnection = new ServerConnection(sqlConnection);
                var server = new Server(svrConnection);
                server.ConnectionContext.ExecuteNonQuery(streamReader.ReadToEnd());
            }
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM