Возникла небольшая проблема с правильной работой вставки. Когда я запускаю вставку в одном и том же методе, она работает безупречно ... однако, когда я пытаюсь отправить инструкцию Insert в мой новый класс Connection (который я буду обрабатывать все запросы к базе данных), я получаю следующую ошибку.
Примечание. Я использую C # и Microsoft SQL Server.
System.Data.SqlClient.SqlException (0x80131904): Must declare the scalar variable "@CollectionGroupID".
Я полагаю, что не отправляю параметры, однако я не уверен, что это лучший способ сделать это.
Вот мой метод AddGame:
public static void AddGame(int gameId)
{
string statement = "INSERT INTO Collection (CollectionGroupID, SharedID, UserID, GameID, Owned, Favorited, WishList, DeletedIndicator, AddUser, AddDate, ModUser, ModDate) VALUES (@CollectionGroupID, @SharedID, @UserID, @GameID, @Owned, @Favorited, @WishList, @DeletedIndicator, @AddUser, @AddDate, @ModUser, @ModDate)";
using (SqlCommand cmd = new SqlCommand())
{
cmd.Parameters.AddWithValue("@CollectionGroupID", "0");
cmd.Parameters.AddWithValue("@SharedID", "0");
cmd.Parameters.AddWithValue("@UserID", "0");
cmd.Parameters.AddWithValue("@GameID", gameId);
cmd.Parameters.AddWithValue("@Owned", "Y");
cmd.Parameters.AddWithValue("@Favorited", "N");
cmd.Parameters.AddWithValue("@WishList", "N");
cmd.Parameters.AddWithValue("@DeletedIndicator", "N");
cmd.Parameters.AddWithValue("@AddUser", "test/admin");
cmd.Parameters.AddWithValue("@AddDate", DateTime.Now);
cmd.Parameters.AddWithValue("@ModUser", "test/admin");
cmd.Parameters.AddWithValue("@ModDate", DateTime.Now);
Connection.Open();
Connection.Statement(statement);
Connection.Close();
}
}
А вот мой метод Statement в моем классе Connection
public static void Statement(string sql)
{
Console.WriteLine("Attempting to submit data to the database...");
try
{
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
}
catch (SqlException e)
{
Console.WriteLine(e);
}
}
Я чувствую, что, возможно, я упускаю простое решение. Любая помощь приветствуется!
-Travis W.