huangyx0817 2022-06-06 17:25 采纳率: 0%
浏览 38
已结题

C# Oracle 多表查询

请问下我用C# 连接Oracle数据库,进行多表关联查询报错是什么原因呀,我单表查询是没问题的,把SQL语句在数据库上运行也是能查到结果的。


using Oracle.ManagedDataAccess.Client;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DeleteOA
{
    public class OracleHelper
    {
        private static string connStr = "User Id=;Password=;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ecology)))";
        public static DataTable ExecuteDataTable(string sql, params OracleParameter[] parameters)
        {
            using (OracleConnection conn = new OracleConnection(connStr))
            {
                conn.Open();
                using (OracleCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    cmd.Parameters.AddRange(parameters);
                    OracleDataAdapter adapter = new OracleDataAdapter(cmd);
                    DataTable datatable = new DataTable();
                    adapter.Fill(datatable);
                    //conn.Close();
                    return datatable;
                }
            }
        }
    }
}

using Oracle.ManagedDataAccess.Client;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace DeleteOA
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string flowNumber = "N9999-000006";
            string sqlstr = "SELECT WORKFLOW_CODESEQRECORD.REQUESTID,WORKFLOW_NOWNODE.NOWNODETYPE FROM WORKFLOW_CODESEQRECORD,WORKFLOW_NOWNODE WHERE WORKFLOW_CODESEQRECORD.REQUESTID = WORKFLOW_NOWNODE.REQUESTID and WORKFLOW_CODESEQRECORD.WORKFLOWCODE = :flowNumber";
            DataTable dt = OracleHelper.ExecuteDataTable(sqlstr, new OracleParameter(":flowNumber", flowNumber));
            int i = dt.Rows.Count;

        }
    }
}

以下是数据库查询结果:

img

以下是系统运行报错:

img

  • 写回答

1条回答 默认 最新

  • 於黾 2022-06-06 17:31
    关注

    HOST=
    这里你host都没赋值呀
    你c#连接的库跟你客户端连接的根本不是同一个库

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月7日
  • 创建了问题 6月6日

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看