首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Parameters.AddWithValue对Parameters.Add?

Parameters.AddWithValue对Parameters.Add?
EN

Stack Overflow用户
提问于 2016-03-18 13:00:36
回答 1查看 7.3K关注 0票数 2

我首先使用下面的代码插入数据,为什么我不能使用Parameters.AddWithValue();??Parameters.AddWithValue和Parameters.Add的实际区别是什么?我已经搜索过了,但是每个人都说对方不受欢迎,现在哪一个真的被废弃了?!每个人的命名空间是什么??据我所知,使用的Parameters.AddWithValue是Oracle.DataAccess;对于Parameters.Add,使用的是System.data.oracle;

第二,当我在这一行没有发现任何错误的时候,为什么我会出错?

代码语言:javascript
复制
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”(您缺少一个使用指令还是程序集引用?)

代码语言:javascript
复制
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();
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-18 13:14:53

第一个错误是因为您传递的是connstr (string)而不是conn (OracleConnection)。改变这一点:

代码语言:javascript
复制
using (OracleCommand cmd =new OracleCommand(cmdstr,connstr))

到这个

代码语言:javascript
复制
using (OracleCommand cmd =new OracleCommand(cmdstr,conn))

至于第二个,OracleParameter does not seem to need :。示例使用:

代码语言:javascript
复制
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.ClientSystem.Data.OracleClient似乎有区别。OracleParameterCollection.AddWithValue似乎存在于System.Data.OracleClient中。但你使用的是Oracle.DataAccess.Client

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36085080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档