Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 将参数传递到sql脚本中_Asp.net_Sql_Asp.net Mvc 4_Sql Server 2012 - Fatal编程技术网

Asp.net 将参数传递到sql脚本中

Asp.net 将参数传递到sql脚本中,asp.net,sql,asp.net-mvc-4,sql-server-2012,Asp.net,Sql,Asp.net Mvc 4,Sql Server 2012,现在我可以用HTTPpost方法从我的网站执行脚本 string scriptDirectory = "c:\\Users\\user\\Documents"; string sqlConnectionString = "Integrated Security=SSPI;" + "Persist Security Info=True;Data Source=ARES"; DirectoryIn

现在我可以用HTTPpost方法从我的网站执行脚本

string scriptDirectory = "c:\\Users\\user\\Documents";
                string sqlConnectionString = "Integrated Security=SSPI;" +
                    "Persist Security Info=True;Data Source=ARES";
                DirectoryInfo di = new DirectoryInfo(scriptDirectory);
                FileInfo[] rgFiles = di.GetFiles("*.sql");
                foreach (FileInfo fi in rgFiles)
                {
                    FileInfo fileInfo = new FileInfo(fi.FullName);
                    string script = fileInfo.OpenText().ReadToEnd();
                    SqlConnection connection = new SqlConnection(sqlConnectionString);
                    Server server = new Server(new ServerConnection(connection));
                    server.ConnectionContext.ExecuteNonQuery(script);
                    connection.Close();
                }
Atm脚本正在创建一个新的数据库,但数据库还不是动态的。我想传入网站用户输入的参数,然后将其传递到sql脚本中。基本上,我希望他们选择要创建的数据库的名称

SQL命令位于脚本的开头

CREATE DATABASE [This is where the name will be passed to]
GO
USE[This is where the name will be passed to]
编辑:

我有这个密码

SqlCommand createDbCommand = new SqlCommand();
        createDbCommand.CommandText = "CREATE DATABASE [@DataBase]";
        createDbCommand.Parameters.Add("@DataBase", SqlDbType.Text);
        createDbCommand.Parameters["@DataBase"].Value = client.HostName;

现在必须手动将其输入脚本顶部吗?

创建一个新的SqlCommand,将脚本CommandText设置为脚本文本,然后使用cmd.parameters.Add设置参数

在CRUD操作中使用参数非常简单,google可以为成千上万的资源提供t-sql参数,但是参数化类型名称更为复杂,因为这里有一篇很长的MSDN文章:


如果您正在寻找快速“n”脏的东西,您可以通过在sql文件中放入替换序列并使用正则表达式进行每次替换(例如使用语法{fieldName}),来运行自己的参数化系统

你能举一个关于如何使用Parameters.Add的例子吗,特别是关于你将作为一个放置持有者在脚本中输入什么。我已经添加了一些代码。我只需要知道除了打开文件并手动修改以输入该命令之外,是否还有其他方法。