我首先使用下面的代码插入数据,为什么我不能使用Parameters.AddWithValue();??Parameters.AddWithValue和Parameters.Add的实际区别是什么?我已经搜索过了,但是每个人都说对方不受欢迎,现在哪一个真的被废弃了?!每个人的命名空间是什么??据我所知,使用的Parameters.AddWithValue是Oracle.DataAccess;对于Parameters.Add,使用的是System.data.oracle;
第二,当我在这一行没有发现任何错误的时候,为什么我会出错?
using (OracleCommand cmd =new OracleCommand(cmdstr,connstr))'Oracle.DataAccess.Client.OracleCommand.OracleCommand(string,Oracle.DataAccess.Client.OracleConnection的最佳重载方法匹配“有一些无效的参数 参数2:无法从“字符串”转换为“Oracle.DataAccess.Client.OracleConnection” Oracle.DataAccess.Client.OracleParameterCollection不包含“AddWithValue”的定义,也找不到接受'Oracle.DataAccess.Client.OracleParameterCollection‘类型的第一个参数的扩展方法“AddWithValue”(您缺少一个使用指令还是程序集引用?)
public void connect_to_db()
{
string connstr = "Data Source=orcl;User Id=user;Password=pwd;";
string cmdstr = @"insert into customers
set (CUST_NAME)
values (:TB_CUST_NAME);";
using (OracleConnection conn = new OracleConnection(connstr))
using (OracleCommand cmd =new OracleCommand(cmdstr,connstr))
{
conn.Open();
cmd.Parameters.AddWithValue(":TB_CUST_NAME", TB_CUST_NAME);
cmd.ExecuteNonQuery();
}
}发布于 2016-03-18 13:14:53
第一个错误是因为您传递的是connstr (string)而不是conn (OracleConnection)。改变这一点:
using (OracleCommand cmd =new OracleCommand(cmdstr,connstr))到这个
using (OracleCommand cmd =new OracleCommand(cmdstr,conn))至于第二个,OracleParameter does not seem to need :。示例使用:
OracleCommand oraCommand = new OracleCommand("SELECT fullname FROM sup_sys.user_profile
WHERE domain_user_name = :userName", db);
oraCommand.Parameters.Add(new OracleParameter("userName", domainUser));Oracle.DataAccess.Client和System.Data.OracleClient似乎有区别。OracleParameterCollection.AddWithValue似乎存在于System.Data.OracleClient中。但你使用的是Oracle.DataAccess.Client。
https://stackoverflow.com/questions/36085080
复制相似问题