前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >c# oracle 数据库连接以及参数化查询

c# oracle 数据库连接以及参数化查询

作者头像
用户2434869
发布2018-09-12 10:39:33
2.3K0
发布2018-09-12 10:39:33
举报
文章被收录于专栏:yl 成长笔记yl 成长笔记
代码语言:javascript
复制
private  string OracleSearchDemo(string cadqueueId)
{
    string address = null;
    using (OracleConnection cn = GetOraConnection())
    {
        string sqlGetAddress = "Select SvjDataAddress From Cadqueue Where CadqueueId = :CadqueueId";
        OracleCommand cmd = new OracleCommand(sqlGetAddress, cn);
        cmd.CommandType = CommandType.Text;
        cmd.Parameters.Add(new OracleParameter("CadqueueId", cadqueueId));
        cn.Open();

        OracleDataReader dtr = cmd.ExecuteReader();
        if (dtr.Read())
        {
            address = dtr["SvjDataAddress"].ToString();
            // 修改数据
            // string sqlChangeStatus = "update cadqueue q  set q.status = :status  Where CadqueueId = :CadqueueId";
            // cmd.CommandText = sqlChangeStatus;
            // cmd.Parameters.Clear();
            // cmd.Parameters.Add("CadqueueId", cadqueueId);
            // cmd.ExecuteNonQuery();
        }
        dtr.Close();
        cn.Close();
    }
    return address;
}

private OracleConnection GetOracleConnection()
{
    OracleConnection conn = new OracleConnection(); // connectString 最好通过 app.config 配置
    conn.ConnectionString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=***.***.***.***)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=***)));Persist Security Info=True;User ID=***;Password=***;" ;
    return conn;
}

 注意:为了防止SQL 注入, 采用参数化查询 (原理: 执行计划重用, 不用重新执行语法解析))

此外, oracle 数据库在参数化查询时,采用 ’‘:parameter’ , mysql 语句中使用 ‘‘’@parameter’ 

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-03-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档