【问题标题】:A Parameter is missing. [Parameter ordinal = 1]缺少一个参数。 [参数序数 = 1]
【发布时间】:2013-06-19 12:05:56
【问题描述】:

所以我一直在为与英雄联盟相关的东西制作一个简单的 c# win 表单应用程序,并且我一直在使用一个我很新的 .SDF 数据库。

在尝试创建搜索选项时,我遇到了这个错误:

缺少参数。 [参数序数=1]

这是我的代码:(我确实将参数添加到命令中。)

public DataTable GetDataTableSummoners(string Summoner, string Champion)
{
    DataTable t = new DataTable();
    try
    {
        var cmd = new SqlCeCommand();
        cmd.CommandText = "SELECT * FROM Summoner";
        if (!String.IsNullOrEmpty(Summoner))
        {
            SqlCeParameter param = new SqlCeParameter();
            param.ParameterName = "@Summoner";
            param.Value = Summoner;
            cmd.Parameters.Add(param);

            cmd.CommandText = "SELECT * FROM Summoner WHERE name = @Summoner";
        }
        var adapter = new SqlCeDataAdapter(cmd.CommandText, conn);
        adapter.Fill(t);
    }
    catch (System.Data.SqlServerCe.SqlCeException ex)
    {
        System.Diagnostics.Debug.Print("Error: " + ex.Message);
    }
    return t;
}

【问题讨论】:

  • conn 是全局定义的 SqlConnection 吗?
  • 是的,它是全球定义的 :)
  • 无需将标题更改为 SOLVED。当您接受答案时,它会被标记为已解决。

标签: c# sql-server-ce


【解决方案1】:

您将参数添加到命令中 - 但您在这里忽略了命令本身:

var adapter = new SqlCeDataAdapter(cmd.CommandText, conn);

只是传入了不包含参数的命令文本。你想要:

var adapter = new SqlCeDataAdapter(cmd, conn);

(我还建议对命令使用 using 语句,并更改方法参数名称以遵循 .NET 命名约定。哦,您似乎没有使用 Champion 参数...)

哦,你可以像这样更容易地添加参数(同时指定类型,这是个好主意):

cmd.Parameters.Add("@Summoner", SqlDbType.NVarChar).Value = Summoner;

【讨论】:

  • 我明白了,我按照你的建议成功了,谢谢!
【解决方案2】:

在 DataAdapter 中传递完整的命令对象,而不仅仅是命令文本

var adapter = new SqlCeDataAdapter(cmd, conn); 或者你可以像这样添加参数

using (SqlConnection connection = new SqlConnection(connectionString))
{
    SqlCommand command = new SqlCommand(commandText, connection);
    command.Parameters.Add("@ID", SqlDbType.Int);
    command.Parameters["@ID"].Value = customerID;

 }

或者你也可以使用command.Parameters.AddWithValue

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-05
    • 1970-01-01
    • 2017-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-03
    相关资源
    最近更新 更多