我正在开发应用程序,其中一个要求是能够从ASP.NET内部创建SP,表,函数,触发器等。我正在使用的语言是C#,但我不知道这是否可能。你介意指点我正确的方向还是给我一些代码示例?
我尝试在线查看,但我无法找到有关此信息的任何信息。
@ rmayer06,我按照你的建议,下面是我的代码:
protected void createproc_Click(object sender, EventArgs e)
{
string sqlscript = File.ReadAllText(Server.MapPath("~/sp_create.sql"));
try
{
SqlConnection con = new SqlConnection();
SqlCommand cmd = new SqlCommand(sqlscript, con);
cmd.CommandType = CommandType.Text;
con.ConnectionString = ConfigurationManager.ConnectionStrings["TCKT"].ConnectionString;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
catch (Exception ex)
{
throw new Exception("An error has occurred" + ex);
}
}
答案 0 :(得分:2)
可以使用SqlCommand.ExecuteNonQuery()
或使用Microsoft.SqlServer
命名空间中的类。我在快速搜索中找到了这个:http://forums.asp.net/t/1703608.aspx/1
但是,如果我是你,我会要求你进一步澄清你的要求。你需要动态创建SP似乎很奇怪;通常,如果需要,最好将它们设计为数据库的一部分,因为SP需要进行优化,调试等。
在相关的说明中,我已经从c#中运行了数据库更新脚本,它确实创建了存储过程作为更新数据库代码的一部分。如果您正在做的事情,我建议如下:
.SQL
文件。作为警告,您的Web应用程序进程需要具有启动sqlcmd进程的权限。或者作为替代方法,您可以使用System.Diagnostics.Process.Start()
类,只需将SQL脚本的全部内容转储到字符串中,然后传递给命令。我想我也是这样做的,而且很有效。