[英]Code to create ASP.Net membership database
在我自己写这篇文章之前,是否有一个ac#方法可以创建由aspnetregsql安装的表,存储过程和视图?
据我所知,没有API可以直接执行此操作aspnet_regsql.exe
工具仅引用磁盘上的脚本文件。
首先了解如何自行实现:
您可以通过Process.Start
手动执行aspnet_regsql.exe
。
或者,您可以从命令行运行该程序,并使用命令行选项转储脚本。 然后将这些脚本编辑为与数据库无关(或由您自己决定),将这些脚本作为嵌入式资源存储在您的应用程序中,在运行时提取它们,然后使用SqlConnection
和ExecuteNonQuery
对数据库运行这些脚本。
这是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.