请问下我用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;
}
}
}
以下是数据库查询结果:
以下是系统运行报错: