专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

新手之C#读取Oracle数据库中的表并显示

ins518 2024-10-17 13:08:10 技术文章 10 ℃ 0 评论

以前只使用过SQL Server2016,没有使用过Oracle,今天算是第二天用,昨天主要在电脑上下载安装上Oracle,并安装上了PLSQL Developer 14 (64 bit),请各位大神们指点一二

SQL Server与Oracle比较

1、安装:Oracle更容易安装一些,网上的安装教程都大同小异,下载安装包时直接去官网下载就行了,把两个压缩包解压到一个文件夹中就行,安装过程中基本上没有什么设置的地方;SQL Server就版本比较多了,安装时需要选择的地方多一些。

2、数据库图形界面管理器:SQL server的更好用一些,可能是一直用的习惯了,Oracle的官网下载需要注册,第三方的基本上都收费,当然大家都懂,学习一下也不会去交费,Navicat 16 for Oracle和PLSQL Developer 14都比较好用一些,但是好多课件上都按PLSQL Developer 14讲的,所以还是使用它吧。

3、数据库:这两个有些不一样,目前也没搞清楚,Oracle安装时就装了个ORCL,感觉没有SQL server的直观,并且更依赖于用户名。

SQL Server:进入管理器后在数据库下新建各种表

Oracle:进入管理器后在用户名下新建各种表

C#编程访问Oracle数据库

1、netGet中安装Oracle.ManagedDataAccess

据说这个是最好用的了,Oracle官方出品,有好多个版本,18.6没有其他依赖,更高版本的需要.net 6支持,这里使用的是.net 4.5开发,网上有些教程说需要下载dll文件,需要引用之类的,为了方便还是直接用netGet安装就行了。

2、编写代码,窗体界面如下

private void button1_Click(object sender, EventArgs e)
{
    string host = txt_host.Text.ToString();
    string user = txt_user.Text.ToString();
    string pass = txt_pass.Text.ToString();
    string dbname=txt_dbname.Text.ToString();
    string sql=txt_sql.Text.ToString();

    DataTable dt = new DataTable();
    string conString = #34;User Id={user};Password={pass};Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST={host})(PORT=1521))(CONNECT_DATA=(SERVICE_NAME={dbname})));";
    using (OracleConnection con = new OracleConnection(conString))
    {
        using (OracleCommand cmd = con.CreateCommand())
        {
            try
            {
                con.Open();
                cmd.BindByName = true;
                cmd.CommandText = sql;
                using (OracleDataAdapter da = new OracleDataAdapter(cmd))
                {
                    da.Fill(dt);
                    DG_show.DataSource = dt;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
            }
           
        }
    }

}

可能遇到的问题

1、连接字符串:Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST={host})(PORT=1521))(CONNECT_DATA=(SERVICE_NAME={dbname})),这个一定要有,要么你就得配置app.config文件了,发现配置了也不起作用,也没空想为啥,直接写这里就行了。

2、host地址只能写localhost,不能写本机的IP地址,这是因为需要在net manager中进行监听配置,默认的监听配置是地址1没有地址2,手动增加上地址2就可以了,地址1中的主机是电脑名称不是IP地址。

运行结果

部分笔记


好了,继续学习,哪位有好的教材给推荐一下,感谢!

#职场##在头条看见彼此##挑战30天在头条写日记#

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表