C#中如何把Oracle数据库查询的结果集返回

小弟刚学C#操作Oracle是这样的:
public String Connole(String txtcomm)
{

Read();
String txtco = "provider = MSDAORA.1 ;Data Source= '" + this.server + "' ; " +
"Password= '" + this.password + "' ;User ID= '" + user + "' ;Unicode=True ";

OleDbConnection Conn = new OleDbConnection(txtco);

OleDbDataAdapter Daper = new OleDbDataAdapter(txtcomm, Conn);

DataTable Dta = new DataTable();

Daper.Fill(Dta);

return Dta.ToString();

}

上面是写的一个连接数据库的类(Class1)的一个方法(封装成Dll),然后我想在窗体中进行调用实现:传入Sql语句返回查询的结果集。代码如下:
public Conndll.Class1 Conne = new Class1();

public DataTable dt = new DataTable();
private void button1_Click(object sender, EventArgs e)
{
this.dt = Conne.Connole("Select * from b.c");//调用Dll
if (this.dt.Rows.Count > 0)
{
MessageBox.Show("OK");
}
else
{
MessageBox.Show("NO");
return;
}
可是调用的时候报错:无法将类型String隐式的转换为System.Data.DataTable
请问:怎么修改上面的代码能够实现上面的功能?传入Sql语句返回查询的结果集代码。急用呀帮帮忙呀!!!

1、首先通过DLL方式进行连接数据库, 也是一个比较通用的方式,项目引入后,即可使用,非常方便,使用之前如有把封装的DLL文件引入自己的项目中,项目里就可以直接调用。

2、可以通过System.Data.oracleClient方式进行连接数据库,查询相关数据,连接前需要在oracle客户端进行配置连接数据服务地址(tnsnames.ora)。

3、也是通过System.Data.oracleClient方式进行连oracle数据库,但是不要进行配置tnsnames.ora文件。

4、最后还可以通过ODP方式进行连接oracle数据库,odp是oracle公司提供的数据库访问类库,如下图所示就完成了。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-09-04
return Dta.ToString();
会把Dta的类型转化为一个字符串输出,你再将字符串赋给DataTable,当然会报错。把前面函数返回值设成DataTable,返回是dta,不是dta.tostring()

public DataTable Connole(String txtcomm)
{
//这里省略
return Dta ;

}
报错的时候要常试去理解一下错误信息,String隐式的转换为System.Data.DataTable,说明程序中你有将String 类型的变量赋给DataTable本回答被提问者采纳
第2个回答  推荐于2018-05-12
你的方法返回类型写错了,改成这样:
public DataTable Connole(String txtcomm)
{
....

return Dta;

}本回答被网友采纳

C#中如何把Oracle数据库查询的结果集返回
1、首先通过DLL方式进行连接数据库, 也是一个比较通用的方式,项目引入后,即可使用,非常方便,使用之前如有把封装的DLL文件引入自己的项目中,项目里就可以直接调用。2、可以通过System.Data.oracleClient方式进行连接数据库,查询相关数据,连接前需要在oracle客户端进行配置连接数据服务地址(tnsnames.ora)...

C#调用oracle存储过程返回数据集
storedProcName, parameters ); sqlDA.Fill(dataSet, tableName ); connection.Close(); return dataSet; } } \/\/\/ \/\/\/ 构建 OracleCommand 对象(用来返回一个结果集,而不是一个整数值) \/\/\/ \/\/\/ 数据库连接 \/\/\/ 存储过程名 \/\/\/ 存储过程参数 \/\/\/ <returns>...

求助,C#查询oracle数据库返回行数的问题
回答:select count(*) from table c#几年不看了,具体语法忘记了 大概也就是connection,然后statement 然后执行sql 然后返回一个ResultSet 再取出结果集

c#调用oracle存储过程,返回2个值
outresult.Add(((OracleParameter)result[i]).Value);} \/\/返回值在outresult对象中

c#怎么返回oracle中多行数据,然后把每行打印出来?
private void print(){ OracleConnection con = new OracleConnection("你的oracle 连接串。(如:data source=***; user=***,password=***;)");OracleCommand cmd = new OracleCommand();cmd.CommandText = "select * from 学生表 where 年龄=18";cmd.Connection = con;cmd.Connection.Open()...

在c#中 怎么获取oracle存储过程中Cursor类型的输出参数
用ExecuteReader方法去执行这个存储过程,会返回一个DataReader对象,这里面就包含了Cursor类型的输出参数值,其实就是查询结果集。就按普通的select处理就好了。

oracle中的存储过程如何返回查询到的多个值?
oracle不是不能,而是采用的方法不同罢了。可以使用一下方法创建返回结果集的调用:SQL> create or replace package pkg_HelloWorld as 2 -- 定义ref cursor类型 3 type myrctype is ref cursor;4 --函数申明 5 function getHelloWorld return myrctype;6 end pkg_HelloWorld;Package ...

怎么在C#代码中获得Oracle 数据的序列
select Seq_Base_Wareclass.Nextval as NNN from dual 然后, 用DataReader读出来 int nextVal = int.Parse(dataReader[0].toString());直接 int.Parse("Seq_Base_Wareclass.Nextval ") 的话, “Seq_Base_Wareclass.Nextval” 这个字符串是不会转成int的。

C#DatagridView如何显示Oracle数据库中的视图的数据?
第一步:建立连接 比如我config文件中的连接字符串:<add key="ConnectionString" value="Data Source=ORCL;User=kcdj;Password=kcdj"\/> 第二步:添加DatagridView控件和bindingSource控件。1、在DatagridView添加列a1,a2,a10 2、用连接建议一张表,并查询数据库,得到字段a1,a2,a10的数据。3、...

如何实现C#与Oracle数据库的链接,是实现链接的具体操作,不是链接代码...
1、VS2010菜单栏中选择视图,点击服务器资源管理器 2、对‘数据连接’右键,选择添加链接 数据源选择‘Oracle数据库,服务器名框中输入一个点(.)3、选择或输入一个数据库名中你点击下拉框选择你要的数据库,然后点击确定 4、上面步骤完成后,第二部中的’数据库连接‘的下拉框中就会出现你刚刚已经...

相似回答