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
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();
}
}
"GO" is a batch separator. It's not a T-SQL Statement. Remove the "USE" and both "GO" lines and try again.
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);
}
}
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.