C# - 如何将带有@Parameters 的插入发送到数据库连接类

伊姆特拉维斯

让我的插入正常工作有点问题。当我在同一个方法中运行 insert all 时,它完美无缺……但是,当我尝试将 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();


        }
    }

这是我的 Connection 类中的 Statement 方法

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);
        }

    }

我觉得也许我忽略了一个简单的解决方案。任何帮助表示赞赏!

-特拉维斯W。

史蒂夫

命令参数SqlCommand在您的AddGame方法中定义

您将原始 Sql 传递给Statement方法,并在方法内部创建另一个SqlCommand未定义参数的方法这就是不传入参数的原因。

你应该做

using (SqlConnection connection = new SqlConnection(connectionString))
{
//OR using (SqlConnection connection = Connection.Open())
//If you want to keep your Connection class to avoid having to pass in connection string.  
    using (SqlCommand cmd = new SqlCommand(statement, connection))
    {
        ...
        cmd.ExecuteNonQuery ()
    }
}

在你的AddGame方法里面

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将带有ajax的int发送到C#

如何将带有鼠标/键挂钩数据的通知从 C# dll 发送到 wpf exe

如何将带有空格的文本从Android发送到MySQL数据库

如何通过C#Windows应用程序连接查询并将查询发送到MariaDB数据库?

如何防止日志异常捕获并将日志发送到数据库 c#?

使用php将带有输入值的数组发送到数据库

C#如何将带有文件的实体作为表单数据从HttpClient发布到API?

如何将excel文件读入json并发送到CFC进行数据库插入?

如何将带有标志的行发送到dataprovider

如何将带有键的对象数组发送到API?

如何将带有参数的命令发送到GNU parallel?

如何将带有 ArrayBuffer 的 JSON 对象发送到 websocket?

如何将带有 FormData 的地图对象发送到 .NET API?

如何使用Swift将带有JSON数据的POST请求发送到外部数据库以在IOS中登录应用程序?

R Shiny-如何将带有参数的请求网址发送到R Shiny,并仅获取数据响应?

如何将带有自定义标头的任意JSON数据发送到REST服务器?

如何将带有正常数据的文件上传路径发送到jQuery中的控制器

C# 将带有列表的 JSON 对象发送到 WebAPI 即将为空

无法将带有Ajax调用的C ++程序发送到php

如何将带有所有元素的字符串的完整列表添加到C#Form Application中的类

如何将带有nil字段的结构插入mongo?

在Ruby on Rails中,如何使用dafult db连接对象将多个更新语句发送到数据库?

C# 如何将带有值的字符串变量添加到任何 System.Collections 类并检索它们

如何将数据从Google Pub / Sub发送到Firebase实时数据库

如何将数据从AWS IoT发送到Mysql数据库?

如何将数据从用户注册表单发送到Firebase数据库

如何将数据从我的数据库发送到 Laravel 中的 google chart api

如何将抓取的数据发送到 postgresql 数据库

如何将加密数据发送到数据库?