C#中如何把Oracle数据库查询的结果集返回
小弟刚学C#操作Oracle是这样的:publicStringConnole(Stringtxtcomm){Read();Stringtxtco="provider=MS...
小弟刚学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语句返回查询的结果集代码。急用呀帮帮忙呀!!! 展开
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语句返回查询的结果集代码。急用呀帮帮忙呀!!! 展开
3个回答
展开全部
1、首先通过DLL方式进行连接数据库, 也是一个比较通用的方式,项目引入后,即可使用,非常方便,使用之前如有把封装的DLL文件引入自己的项目中,项目里就可以直接调用。
2、可以通过System.Data.oracleClient方式进行连接数据库,查询相关数据,连接前需要在oracle客户端进行配置连接数据服务地址(tnsnames.ora)。
3、也是通过System.Data.oracleClient方式进行连oracle数据库,但是不要进行配置tnsnames.ora文件。
4、最后还可以通过ODP方式进行连接oracle数据库,odp是oracle公司提供的数据库访问类库,如下图所示就完成了。
展开全部
return Dta.ToString();
会把Dta的类型转化为一个字符串输出,你再将字符串赋给DataTable,当然会报错。把前面函数返回值设成DataTable,返回是dta,不是dta.tostring()
public DataTable Connole(String txtcomm)
{
//这里省略
return Dta ;
}
报错的时候要常试去理解一下错误信息,String隐式的转换为System.Data.DataTable,说明程序中你有将String 类型的变量赋给DataTable
会把Dta的类型转化为一个字符串输出,你再将字符串赋给DataTable,当然会报错。把前面函数返回值设成DataTable,返回是dta,不是dta.tostring()
public DataTable Connole(String txtcomm)
{
//这里省略
return Dta ;
}
报错的时候要常试去理解一下错误信息,String隐式的转换为System.Data.DataTable,说明程序中你有将String 类型的变量赋给DataTable
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的方法返回类型写错了,改成这样:
public DataTable Connole(String txtcomm)
{
....
return Dta;
}
public DataTable Connole(String txtcomm)
{
....
return Dta;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询