1

現在、HTTPpost メソッドで自分の Web サイトからスクリプトを実行できます。

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 スクリプトは新しいデータベースを作成しています (データベースはまだ動的ではありません)。Web サイトのユーザーが入力したパラメーターを渡し、それを 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;

これをスクリプトの先頭に手動で入力する必要がありますか?

4

1 に答える 1

0

新しい SqlCommand を作成し、スクリプトCommandTextをスクリプトのテキストに設定してから、 を使用してパラメーターを設定しますcmd.Parameters.Add

CRUD 操作でパラメーターを使用するのは簡単ですが (Google で数千のリソースの「t-sql パラメーター」を検索)、型名のパラメーター化はより複雑です。 en-us/library/bb510489.aspx

何か手っ取り早い「汚い」ものを探している場合は、SQL ファイルに置換シーケンスを配置し、構文 " {{fieldName}}" を使用するなど、正規表現を使用して各置換を作成することにより、独自のパラメーター化システムを展開できます。

于 2013-03-08T21:22:59.233 に答える