C# command.parameters.addwithvalue不工作

C# command.parameters.addwithvalue不工作,c#,npgsql,C#,Npgsql,我在使用参数保存记录时遇到了一个问题。下面是我的代码 try { string usd = "USR" + randomnumber(001, 1000).ToString(); dbconn.poconne.Open(); string useradd = "insert into users values(@userid,@username,@password,@email,@department,@log)"; using (NpgsqlCommand c

我在使用参数保存记录时遇到了一个问题。下面是我的代码

try
{
    string usd = "USR" + randomnumber(001, 1000).ToString();
    dbconn.poconne.Open();
    string useradd = "insert into users values(@userid,@username,@password,@email,@department,@log)";

    using (NpgsqlCommand cmdadd = new NpgsqlCommand(useradd, dbconn.poconne))
    {
        cmdadd.Parameters.AddWithValue("@userid", usd);
    }
}
catch (Exception er)
{
    MessageBox.Show(er.Message);
}
我得到这个错误

错误1“Npgsql.NpgsqlParameterCollection”不包含 “AddWithValue”和无扩展方法“AddWithValue”的定义 接受类型为“Npgsql.NpgsqlParameterCollection”的第一个参数 无法找到(是否缺少using指令或程序集 参考?)C:\Users\ICT PGL\Documents\Visual Studio 2010\Projects\officeautomation\customercare\customercare\users.cs 34 39 customercare

有关解决错误的任何帮助,请参见您的查询:

string useradd = "insert into users (id, name, password, email, department, log) values(:userid,:username,:password,:email,:department,:log)";
您的参数:

cmd.Parameters.Add(new NpgsqlParameter("userid", NpgsqlTypes.NpgsqlDbType.Int));
cmd.Parameters.Add(new NpgsqlParameter("username", NpgsqlTypes.NpgsqlDbType.Text));
cmd.Parameters[0].Value = usd;
cmd.Parameters[1].Value = "username";
我只显示了两个参数。相应地添加其他参数


最好指定要插入数据的列。

我建议不要使用
AddWithValue
。相反,调用
Add
创建参数,指定名称和类型,然后设置
属性。但看起来它真的应该在那里。您正在使用哪个版本的库?Postgresql是否也使用
@
作为参数名称前缀?我知道T-SQL(MS SQL Server,Sybase)使用这个标准,但这不是一个行业标准。也许Postgresql使用了其他方法?谢谢Khazratbek,它工作得很好,还学会了这种新方法。谢谢Alot@tallman不客气!批准任何答案,你的问题就会得到解决。因此,其他用户也可以看到正确的一个,并使用它。我的声誉非常好low@tallman我认为声誉对批准答案没有那么大的价值。)@tallman你不需要声誉来批准答案(旁边的绿色勾号,事实上你会在这个过程中获得声誉)。