0

私は現在、要件の 1 つが 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);
    }
}
4

1 に答える 1

2

を使用するか、名前空間SqlCommand.ExecuteNonQuery()のクラスを使用することで可能になる場合があります。Microsoft.SqlServerクイック検索でこれを見つけました:http://forums.asp.net/t/1703608.aspx/1

ただし、私があなたの立場であれば、あなたの要件についてさらに説明を求めます。SP を動的に作成する必要があるのは奇妙に思えます。一般に、SP は最適化やデバッグなどが必要になるため、必要に応じてデータベースの一部として設計することをお勧めします。

関連するメモとして、C# 内からデータベース更新スクリプトを実行しました。これにより、データベース コードの更新の一環としてストアド プロシージャが作成されました。そのような場合は、次のことをお勧めします。

  1. データベース全体を 1 つのファイルにスクリプト化し.SQLます。
  2. sqlcmd ユーティリティを使用して、ローカル サーバーに対してファイルを実行します。これはSystem.Diagnostics.Process.Start()、Web アプリケーションから呼び出し、必要なコマンドライン パラメータを指定することで実行できます。

注意点として、Web アプリ プロセスには、sqlcmd プロセスを起動するためのアクセス許可が必要です。または、SqlCommandクラスを使用して、SQL スクリプトの内容全体を文字列にダンプし、それをコマンドに渡すこともできます。私もそれをやったと思います、そしてそれはうまくいきました。

于 2013-03-12T04:07:09.280 に答える