Creating a stored procedure via C#

前端 未结 4 730
情话喂你
情话喂你 2020-12-09 22:19

I\'m trying to create a seed DB in my web app, and i was able to create the DB, populate the tables, i\'m just stuck at getting the stored procedures to work. Here is what i

相关标签:
4条回答
  • 2020-12-09 22:51

    As others have mentioned, the "GO" command is simply a batch separator which is interpreted by SSMS. What you want to do is create the stored procedure as follows:

    string sql = string.Format("CREATE PROCEDURE [{0}]..[spInsertADAuthorization] @AD_Account varchar(255),@AD_SID varchar(255),@AD_EmailAddress varchar(255),@DateImported datetime,@Active bit AS BEGIN SET NOCOUNT ON; INSERT INTO AD_Authorization (AD_Account, AD_SID, AD_EmailAddress, DateImported, Active) VALUES (@AD_Account,@AD_SID,@AD_EmailAddress,@DateImported,@Active) END", txtDBName.Text);
    
    using (SqlConnection connection = new SqlConnection(ConnectionString))
    {
        using (SqlCommand cmd = new SqlCommand(sql, connection))
        {
            connection.Open();
            cmd.CommandType = CommandType.Text;
            cmd.ExecuteNonQuery();
            connection.Close();
        }
    }
    
    0 讨论(0)
  • 2020-12-09 22:56

    "GO" is a batch separator. It's not a T-SQL Statement. Remove the "USE" and both "GO" lines and try again.

    0 讨论(0)
  • 2020-12-09 23:00

    Instead of using 'USE [DataBase] Go' you can set or change the current database for an open SqlConnection very easily:

    connection.ChangeDatabase("YourDB");
    

    An example:

    private static void ConctDatabase(string connectionString)
    {
        using (SqlConnection conn = new SqlConnection(connectionString))
        {
            conn.Open();
            MessageBox.Show("Database: {0}", conn.Database);
            conn.ChangeDatabase("Northwind");
            MessageBox.Show("Database: {0}", conn.Database);
        }
    }
    
    0 讨论(0)
  • 2020-12-09 23:01

    If you're looking at creating a Database and maintaining versions in your code, you might want to consider using something like the Migrator Framework instead of hand writing all that SQL.

    0 讨论(0)
提交回复
热议问题