Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# OLEDB连接引发异常“;参数太少”;_C#_Sql_Ms Access_Oledb - Fatal编程技术网

C# OLEDB连接引发异常“;参数太少”;

C# OLEDB连接引发异常“;参数太少”;,c#,sql,ms-access,oledb,C#,Sql,Ms Access,Oledb,我对Access数据库执行了以下INSERT查询 using (var cmd = conn.CreateCommand()) { try { cmd.CommandText = @"INSERT INTO mtConcepts ( conceptid, [text],

我对Access数据库执行了以下
INSERT
查询

using (var cmd = conn.CreateCommand())
{
    try
    {
        cmd.CommandText = @"INSERT INTO mtConcepts (
                                conceptid,
                                [text],
                                incomplete)
                            VALUES (
                                @conceptid,
                                @text,
                                false)";
        cmd.Parameters.Add("@conceptid", OleDbType.BigInt).Value = concept.Id.Value;
        cmd.Parameters.Add("@text", OleDbType.LongVarWChar).Value = cG.ToString(SaveOptions.DisableFormatting);
        await cmd.ExecuteNonQueryAsync(cancellationToken).ConfigureAwait(false);
    }
    catch (AggregateException exception)
    {
        ...
    }
    catch (OleDbException exception)
    {
        ...
    }
}
捕获到带有消息的
OLEDBEException

参数太少。预期2

…我不明白为什么

这是大约7年前编写的代码,一直工作到。。。最近某个时候

此外,如果我没有参数化查询,而是直接在SQL中传递值,那么它就可以工作了

更新


我通过安装旧版本的来实现这一点。但是,我仍然感到困惑——在安装这个2010版本之前,我使用的是最新版本Access附带的连接(通过Office365安装),所以它应该仍然可以工作。

就像帮助一样。我也遇到了同样的问题,所以我将参数名称改为问号

它工作得很好;例如:

OdbcCommand cmd=new-OdbcCommand(“从用户id=?和passwd=?”所在的用户中选择*,康涅狄格州);//*
cmd.Parameters.Add(新的OdbcParameter(“@UserID”,UserID));
cmd.Parameters.Add(新的OdbcParameter(“@Password”,Password));
OdbcDataReader=cmd.ExecuteReader();

谢谢你的建议,但这对我不起作用-同样的例外。