源代码我就不贴了,就几句话而已
17 个解决方案
#1
Oracle那一套没有用过
不过SqlDataReader是实现了System.Data.IDataReader接口的
按照.net的思想
Orcale中的DataReader应该同样实现这个接口
你查查看
应该可以直接用IDataReader
不过SqlDataReader是实现了System.Data.IDataReader接口的
按照.net的思想
Orcale中的DataReader应该同样实现这个接口
你查查看
应该可以直接用IDataReader
#2
我这里没有OracleData的安装,所以你自己看看,大体是按照下面的思路
看用OracleDataReader是不是从IDataReader实现的(我猜90%是)。如果是的话,可以用下面的方法。
IDbCommand myCommand = myConn.CreateCommand();
myCommand.CommandText = "SELECT * FROM Customers";
IDataReader myReader = myCommand.ExecuteReader();
while (myReader.Read())
Console.WriteLine("{0}\t{1}", myReader.GetString(0), myReader.GetString(1));
看用OracleDataReader是不是从IDataReader实现的(我猜90%是)。如果是的话,可以用下面的方法。
IDbCommand myCommand = myConn.CreateCommand();
myCommand.CommandText = "SELECT * FROM Customers";
IDataReader myReader = myCommand.ExecuteReader();
while (myReader.Read())
Console.WriteLine("{0}\t{1}", myReader.GetString(0), myReader.GetString(1));
#3
不需要自己实现接口
包括IDataReader、IDataAdapter等等接口,.Net类库里面已经设计了一整套,所以你直接用就行,不需要自己再封装一遍
包括IDataReader、IDataAdapter等等接口,.Net类库里面已经设计了一整套,所以你直接用就行,不需要自己再封装一遍
#4
IDataAdapter 接口:
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemDataIDataAdapterMembersTopic.htm
IDataReader 接口:
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemDataIDataReaderMembersTopic.htm
IDbCommand 接口:
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemDataIDbCommandMembersTopic.htm
IDbConnection 接口:
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemDataIDbConnectionMembersTopic.htm
IDbTransaction 接口:
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemDataIDbTransactionMembersTopic.htm
IDataParameter 接口:
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfsystemdataidataparameterclasstopic.htm
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemDataIDataAdapterMembersTopic.htm
IDataReader 接口:
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemDataIDataReaderMembersTopic.htm
IDbCommand 接口:
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemDataIDbCommandMembersTopic.htm
IDbConnection 接口:
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemDataIDbConnectionMembersTopic.htm
IDbTransaction 接口:
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemDataIDbTransactionMembersTopic.htm
IDataParameter 接口:
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfsystemdataidataparameterclasstopic.htm
#5
我试验IDataReader是不行的,有没有人运行成功告诉我一声?
#6
为什么不成功?
编译不通过?
编译不通过?
#7
????
你什么意思啊?如果你用接口那么当你接口引用的时候只能引用接口中
有的方法而不管具体实现如:
interfac ImyConncation//你的接口
{
datareader myConncation();
}
当你要继承接口实现类的时候,如以实现sqlconncation Oracleconncation
那么你的接口只能使用myConncation()如:
ImyConncation myC=new sqlconncation();
myC.myConnaction();//你只能使用这个方法,因为你的接口中只有这个方法的定义
你什么意思啊?如果你用接口那么当你接口引用的时候只能引用接口中
有的方法而不管具体实现如:
interfac ImyConncation//你的接口
{
datareader myConncation();
}
当你要继承接口实现类的时候,如以实现sqlconncation Oracleconncation
那么你的接口只能使用myConncation()如:
ImyConncation myC=new sqlconncation();
myC.myConnaction();//你只能使用这个方法,因为你的接口中只有这个方法的定义
#8
我下载了一个看了看,的确实实现了IDataReader接口。如何不行,出什么错误信息,请说说。
[C#]
public sealed class OracleDataReader : MarshalByRefObject,
IDataReader, IDisposable, IDataRecord, IEnumerable
[C#]
public sealed class OracleDataReader : MarshalByRefObject,
IDataReader, IDisposable, IDataRecord, IEnumerable
#9
interface IData
{
IDataReader GetReader(string sql);
}
public class SqlData:IData
{
public SqlDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection("server=yuaiwu\\yuaiwu;uid=sa;pwd=sa1234;database=oilwell");
SqlCommand command = new SqlCommand(sql,conn);
conn.Open();
SqlDataReader reader = command.ExecuteReader();
return reader;
}
}
public class OracleData:IData
{
public OracleDataReader GetReader(string sql)
{
OracleConnection conn = new OracleConnection("data source=oilwell;user id=oilwell;password=oilwell");
OracleCommand command = new OracleCommand(sql,conn);
conn.Open();
OracleDataReader reader = command.ExecuteReader();
return reader;
}
}
----------------------------------------------
------ 已启动生成:项目:datareader, 配置:Debug .NET ------
正在准备资源...
正在更新引用...
正在执行主编译...
d:\yu\project.net\idatareader\datareader\form1.cs(107,15): error CS0536: “datareader.SqlData”不会实现接口成员“datareader.IData.GetReader(string)”。“datareader.SqlData.GetReader(string)”或者是静态、非公共的,或者有错误的返回类型。
d:\yu\project.net\idatareader\datareader\form1.cs(106,43):(相关位置)d:\yu\project.net\idatareader\datareader\form1.cs(108,35):(相关位置)d:\yu\project.net\idatareader\datareader\form1.cs(118,15): error CS0536: “datareader.OracleData”不会实现接口成员“datareader.IData.GetReader(string)”。“datareader.OracleData.GetReader(string)”或者是静态、非公共的,或者有错误的返回类型。
d:\yu\project.net\idatareader\datareader\form1.cs(106,43):(相关位置)d:\yu\project.net\idatareader\datareader\form1.cs(119,38):(相关位置)
生成完成 -- 2 个错误,0 个警告
正在生成附属程序集...
---------------------- 完成 ---------------------
生成:0 已成功, 1 已失败, 0 已跳过
{
IDataReader GetReader(string sql);
}
public class SqlData:IData
{
public SqlDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection("server=yuaiwu\\yuaiwu;uid=sa;pwd=sa1234;database=oilwell");
SqlCommand command = new SqlCommand(sql,conn);
conn.Open();
SqlDataReader reader = command.ExecuteReader();
return reader;
}
}
public class OracleData:IData
{
public OracleDataReader GetReader(string sql)
{
OracleConnection conn = new OracleConnection("data source=oilwell;user id=oilwell;password=oilwell");
OracleCommand command = new OracleCommand(sql,conn);
conn.Open();
OracleDataReader reader = command.ExecuteReader();
return reader;
}
}
----------------------------------------------
------ 已启动生成:项目:datareader, 配置:Debug .NET ------
正在准备资源...
正在更新引用...
正在执行主编译...
d:\yu\project.net\idatareader\datareader\form1.cs(107,15): error CS0536: “datareader.SqlData”不会实现接口成员“datareader.IData.GetReader(string)”。“datareader.SqlData.GetReader(string)”或者是静态、非公共的,或者有错误的返回类型。
d:\yu\project.net\idatareader\datareader\form1.cs(106,43):(相关位置)d:\yu\project.net\idatareader\datareader\form1.cs(108,35):(相关位置)d:\yu\project.net\idatareader\datareader\form1.cs(118,15): error CS0536: “datareader.OracleData”不会实现接口成员“datareader.IData.GetReader(string)”。“datareader.OracleData.GetReader(string)”或者是静态、非公共的,或者有错误的返回类型。
d:\yu\project.net\idatareader\datareader\form1.cs(106,43):(相关位置)d:\yu\project.net\idatareader\datareader\form1.cs(119,38):(相关位置)
生成完成 -- 2 个错误,0 个警告
正在生成附属程序集...
---------------------- 完成 ---------------------
生成:0 已成功, 1 已失败, 0 已跳过
#10
public SqlDataReader GetReader(string sql)
->
public IDataReader GetReader(string sql)
public OracleDataReader GetReader(string sql)
->
public IDataReader GetReader(string sql)
->
public IDataReader GetReader(string sql)
public OracleDataReader GetReader(string sql)
->
public IDataReader GetReader(string sql)
#11
public IDataReader GetReader(string sql)
d:\yu\project.net\idatareader\datareader\form1.cs(99,22): error CS0106: 修饰符“public”对该项无效
d:\yu\project.net\idatareader\datareader\form1.cs(99,22): error CS0106: 修饰符“public”对该项无效
#12
大家再看看有没有办法,或者我哪里写错了,过一会结贴了
#13
这样写没有问题
你重新试试
这是你的代码
using System.Data;
using System.Data.SqlClient;
interface IData
{
IDataReader GetReader(string sql);
}
public class SqlData:IData
{
public IDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection("server=yuaiwu\\yuaiwu;uid=sa;pwd=sa1234;database=oilwell");
SqlCommand command = new SqlCommand(sql,conn);
conn.Open();
SqlDataReader reader = command.ExecuteReader();
return reader;
}
}
我编译了,没有问题
你重新试试
这是你的代码
using System.Data;
using System.Data.SqlClient;
interface IData
{
IDataReader GetReader(string sql);
}
public class SqlData:IData
{
public IDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection("server=yuaiwu\\yuaiwu;uid=sa;pwd=sa1234;database=oilwell");
SqlCommand command = new SqlCommand(sql,conn);
conn.Open();
SqlDataReader reader = command.ExecuteReader();
return reader;
}
}
我编译了,没有问题
#14
没道理
你把所有代码贴出来看看
你把所有代码贴出来看看
#15
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
using System.Data.OracleClient;
namespace datareader
{
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button button1;
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null;
public Form1()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(72, 104);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(136, 64);
this.button1.TabIndex = 0;
this.button1.Text = "button1";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(292, 266);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.button1});
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void button1_Click(object sender, System.EventArgs e)
{
}
}
interface IData
{
public IDataReader GetReader(string sql);
}
public class SqlData:IData
{
public SqlDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection("server=yuaiwu\\yuaiwu;uid=sa;pwd=sa1234;database=oilwell");
SqlCommand command = new SqlCommand(sql,conn);
conn.Open();
SqlDataReader reader = command.ExecuteReader();
return reader;
}
}
public class OracleData:IData
{
public OracleDataReader GetReader(string sql)
{
OracleConnection conn = new OracleConnection("data source=oilwell;user id=oilwell;password=oilwell");
OracleCommand command = new OracleCommand(sql,conn);
conn.Open();
OracleDataReader reader = command.ExecuteReader();
return reader;
}
}
}
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
using System.Data.OracleClient;
namespace datareader
{
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button button1;
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null;
public Form1()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(72, 104);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(136, 64);
this.button1.TabIndex = 0;
this.button1.Text = "button1";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(292, 266);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.button1});
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void button1_Click(object sender, System.EventArgs e)
{
}
}
interface IData
{
public IDataReader GetReader(string sql);
}
public class SqlData:IData
{
public SqlDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection("server=yuaiwu\\yuaiwu;uid=sa;pwd=sa1234;database=oilwell");
SqlCommand command = new SqlCommand(sql,conn);
conn.Open();
SqlDataReader reader = command.ExecuteReader();
return reader;
}
}
public class OracleData:IData
{
public OracleDataReader GetReader(string sql)
{
OracleConnection conn = new OracleConnection("data source=oilwell;user id=oilwell;password=oilwell");
OracleCommand command = new OracleCommand(sql,conn);
conn.Open();
OracleDataReader reader = command.ExecuteReader();
return reader;
}
}
}
#16
interface IData
{
public IDataReader GetReader(string sql);
}
改成:
public interface IData
{
IDataReader GetReader(string sql);
}
{
public IDataReader GetReader(string sql);
}
改成:
public interface IData
{
IDataReader GetReader(string sql);
}
#17
接口声明可以声明零个或多个成员。接口的成员必须是方法、属性、事件或索引器。接口不能包含常数、字段、运算符、实例构造函数、析构函数或类型,也不能包含任何种类的静态成员。
所有接口成员都隐式地具有 public 访问权限。接口成员声明包含任何修饰符属于编译时错误。具体地说,接口成员包含下列任何修饰符属于编译时错误:abstract、public、protected、internal、private、virtual、override 或 static。
reference:
ms-help://MS.VSCC/MS.MSDNVS.2052/csspec/html/vclrfcsharpspec_13_2.htm
interface IData
{
public IDataReader GetReader(string sql);
}
改成
interface IData
{
IDataReader GetReader(string sql);
}
public class SqlData:IData
{
public SqlDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection("server=yuaiwu\\yuaiwu;uid=sa;pwd=sa1234;database=oilwell");
SqlCommand command = new SqlCommand(sql,conn);
conn.Open();
SqlDataReader reader = command.ExecuteReader();
return reader;
}
}
public class OracleData:IData
{
public OracleDataReader GetReader(string sql)
{
OracleConnection conn = new OracleConnection("data source=oilwell;user id=oilwell;password=oilwell");
OracleCommand command = new OracleCommand(sql,conn);
conn.Open();
OracleDataReader reader = command.ExecuteReader();
return reader;
}
}
改成
public class SqlData:IData
{
public IDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection("server=yuaiwu\\yuaiwu;uid=sa;pwd=sa1234;database=oilwell");
SqlCommand command = new SqlCommand(sql,conn);
conn.Open();
SqlDataReader reader = command.ExecuteReader();
return reader;
}
}
public class OracleData:IData
{
public IDataReader GetReader(string sql)
{
OracleConnection conn = new OracleConnection("data source=oilwell;user id=oilwell;password=oilwell");
OracleCommand command = new OracleCommand(sql,conn);
conn.Open();
OracleDataReader reader = command.ExecuteReader();
return reader;
}
}
所有接口成员都隐式地具有 public 访问权限。接口成员声明包含任何修饰符属于编译时错误。具体地说,接口成员包含下列任何修饰符属于编译时错误:abstract、public、protected、internal、private、virtual、override 或 static。
reference:
ms-help://MS.VSCC/MS.MSDNVS.2052/csspec/html/vclrfcsharpspec_13_2.htm
interface IData
{
public IDataReader GetReader(string sql);
}
改成
interface IData
{
IDataReader GetReader(string sql);
}
public class SqlData:IData
{
public SqlDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection("server=yuaiwu\\yuaiwu;uid=sa;pwd=sa1234;database=oilwell");
SqlCommand command = new SqlCommand(sql,conn);
conn.Open();
SqlDataReader reader = command.ExecuteReader();
return reader;
}
}
public class OracleData:IData
{
public OracleDataReader GetReader(string sql)
{
OracleConnection conn = new OracleConnection("data source=oilwell;user id=oilwell;password=oilwell");
OracleCommand command = new OracleCommand(sql,conn);
conn.Open();
OracleDataReader reader = command.ExecuteReader();
return reader;
}
}
改成
public class SqlData:IData
{
public IDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection("server=yuaiwu\\yuaiwu;uid=sa;pwd=sa1234;database=oilwell");
SqlCommand command = new SqlCommand(sql,conn);
conn.Open();
SqlDataReader reader = command.ExecuteReader();
return reader;
}
}
public class OracleData:IData
{
public IDataReader GetReader(string sql)
{
OracleConnection conn = new OracleConnection("data source=oilwell;user id=oilwell;password=oilwell");
OracleCommand command = new OracleCommand(sql,conn);
conn.Open();
OracleDataReader reader = command.ExecuteReader();
return reader;
}
}
#1
Oracle那一套没有用过
不过SqlDataReader是实现了System.Data.IDataReader接口的
按照.net的思想
Orcale中的DataReader应该同样实现这个接口
你查查看
应该可以直接用IDataReader
不过SqlDataReader是实现了System.Data.IDataReader接口的
按照.net的思想
Orcale中的DataReader应该同样实现这个接口
你查查看
应该可以直接用IDataReader
#2
我这里没有OracleData的安装,所以你自己看看,大体是按照下面的思路
看用OracleDataReader是不是从IDataReader实现的(我猜90%是)。如果是的话,可以用下面的方法。
IDbCommand myCommand = myConn.CreateCommand();
myCommand.CommandText = "SELECT * FROM Customers";
IDataReader myReader = myCommand.ExecuteReader();
while (myReader.Read())
Console.WriteLine("{0}\t{1}", myReader.GetString(0), myReader.GetString(1));
看用OracleDataReader是不是从IDataReader实现的(我猜90%是)。如果是的话,可以用下面的方法。
IDbCommand myCommand = myConn.CreateCommand();
myCommand.CommandText = "SELECT * FROM Customers";
IDataReader myReader = myCommand.ExecuteReader();
while (myReader.Read())
Console.WriteLine("{0}\t{1}", myReader.GetString(0), myReader.GetString(1));
#3
不需要自己实现接口
包括IDataReader、IDataAdapter等等接口,.Net类库里面已经设计了一整套,所以你直接用就行,不需要自己再封装一遍
包括IDataReader、IDataAdapter等等接口,.Net类库里面已经设计了一整套,所以你直接用就行,不需要自己再封装一遍
#4
IDataAdapter 接口:
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemDataIDataAdapterMembersTopic.htm
IDataReader 接口:
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemDataIDataReaderMembersTopic.htm
IDbCommand 接口:
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemDataIDbCommandMembersTopic.htm
IDbConnection 接口:
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemDataIDbConnectionMembersTopic.htm
IDbTransaction 接口:
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemDataIDbTransactionMembersTopic.htm
IDataParameter 接口:
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfsystemdataidataparameterclasstopic.htm
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemDataIDataAdapterMembersTopic.htm
IDataReader 接口:
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemDataIDataReaderMembersTopic.htm
IDbCommand 接口:
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemDataIDbCommandMembersTopic.htm
IDbConnection 接口:
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemDataIDbConnectionMembersTopic.htm
IDbTransaction 接口:
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemDataIDbTransactionMembersTopic.htm
IDataParameter 接口:
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfsystemdataidataparameterclasstopic.htm
#5
我试验IDataReader是不行的,有没有人运行成功告诉我一声?
#6
为什么不成功?
编译不通过?
编译不通过?
#7
????
你什么意思啊?如果你用接口那么当你接口引用的时候只能引用接口中
有的方法而不管具体实现如:
interfac ImyConncation//你的接口
{
datareader myConncation();
}
当你要继承接口实现类的时候,如以实现sqlconncation Oracleconncation
那么你的接口只能使用myConncation()如:
ImyConncation myC=new sqlconncation();
myC.myConnaction();//你只能使用这个方法,因为你的接口中只有这个方法的定义
你什么意思啊?如果你用接口那么当你接口引用的时候只能引用接口中
有的方法而不管具体实现如:
interfac ImyConncation//你的接口
{
datareader myConncation();
}
当你要继承接口实现类的时候,如以实现sqlconncation Oracleconncation
那么你的接口只能使用myConncation()如:
ImyConncation myC=new sqlconncation();
myC.myConnaction();//你只能使用这个方法,因为你的接口中只有这个方法的定义
#8
我下载了一个看了看,的确实实现了IDataReader接口。如何不行,出什么错误信息,请说说。
[C#]
public sealed class OracleDataReader : MarshalByRefObject,
IDataReader, IDisposable, IDataRecord, IEnumerable
[C#]
public sealed class OracleDataReader : MarshalByRefObject,
IDataReader, IDisposable, IDataRecord, IEnumerable
#9
interface IData
{
IDataReader GetReader(string sql);
}
public class SqlData:IData
{
public SqlDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection("server=yuaiwu\\yuaiwu;uid=sa;pwd=sa1234;database=oilwell");
SqlCommand command = new SqlCommand(sql,conn);
conn.Open();
SqlDataReader reader = command.ExecuteReader();
return reader;
}
}
public class OracleData:IData
{
public OracleDataReader GetReader(string sql)
{
OracleConnection conn = new OracleConnection("data source=oilwell;user id=oilwell;password=oilwell");
OracleCommand command = new OracleCommand(sql,conn);
conn.Open();
OracleDataReader reader = command.ExecuteReader();
return reader;
}
}
----------------------------------------------
------ 已启动生成:项目:datareader, 配置:Debug .NET ------
正在准备资源...
正在更新引用...
正在执行主编译...
d:\yu\project.net\idatareader\datareader\form1.cs(107,15): error CS0536: “datareader.SqlData”不会实现接口成员“datareader.IData.GetReader(string)”。“datareader.SqlData.GetReader(string)”或者是静态、非公共的,或者有错误的返回类型。
d:\yu\project.net\idatareader\datareader\form1.cs(106,43):(相关位置)d:\yu\project.net\idatareader\datareader\form1.cs(108,35):(相关位置)d:\yu\project.net\idatareader\datareader\form1.cs(118,15): error CS0536: “datareader.OracleData”不会实现接口成员“datareader.IData.GetReader(string)”。“datareader.OracleData.GetReader(string)”或者是静态、非公共的,或者有错误的返回类型。
d:\yu\project.net\idatareader\datareader\form1.cs(106,43):(相关位置)d:\yu\project.net\idatareader\datareader\form1.cs(119,38):(相关位置)
生成完成 -- 2 个错误,0 个警告
正在生成附属程序集...
---------------------- 完成 ---------------------
生成:0 已成功, 1 已失败, 0 已跳过
{
IDataReader GetReader(string sql);
}
public class SqlData:IData
{
public SqlDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection("server=yuaiwu\\yuaiwu;uid=sa;pwd=sa1234;database=oilwell");
SqlCommand command = new SqlCommand(sql,conn);
conn.Open();
SqlDataReader reader = command.ExecuteReader();
return reader;
}
}
public class OracleData:IData
{
public OracleDataReader GetReader(string sql)
{
OracleConnection conn = new OracleConnection("data source=oilwell;user id=oilwell;password=oilwell");
OracleCommand command = new OracleCommand(sql,conn);
conn.Open();
OracleDataReader reader = command.ExecuteReader();
return reader;
}
}
----------------------------------------------
------ 已启动生成:项目:datareader, 配置:Debug .NET ------
正在准备资源...
正在更新引用...
正在执行主编译...
d:\yu\project.net\idatareader\datareader\form1.cs(107,15): error CS0536: “datareader.SqlData”不会实现接口成员“datareader.IData.GetReader(string)”。“datareader.SqlData.GetReader(string)”或者是静态、非公共的,或者有错误的返回类型。
d:\yu\project.net\idatareader\datareader\form1.cs(106,43):(相关位置)d:\yu\project.net\idatareader\datareader\form1.cs(108,35):(相关位置)d:\yu\project.net\idatareader\datareader\form1.cs(118,15): error CS0536: “datareader.OracleData”不会实现接口成员“datareader.IData.GetReader(string)”。“datareader.OracleData.GetReader(string)”或者是静态、非公共的,或者有错误的返回类型。
d:\yu\project.net\idatareader\datareader\form1.cs(106,43):(相关位置)d:\yu\project.net\idatareader\datareader\form1.cs(119,38):(相关位置)
生成完成 -- 2 个错误,0 个警告
正在生成附属程序集...
---------------------- 完成 ---------------------
生成:0 已成功, 1 已失败, 0 已跳过
#10
public SqlDataReader GetReader(string sql)
->
public IDataReader GetReader(string sql)
public OracleDataReader GetReader(string sql)
->
public IDataReader GetReader(string sql)
->
public IDataReader GetReader(string sql)
public OracleDataReader GetReader(string sql)
->
public IDataReader GetReader(string sql)
#11
public IDataReader GetReader(string sql)
d:\yu\project.net\idatareader\datareader\form1.cs(99,22): error CS0106: 修饰符“public”对该项无效
d:\yu\project.net\idatareader\datareader\form1.cs(99,22): error CS0106: 修饰符“public”对该项无效
#12
大家再看看有没有办法,或者我哪里写错了,过一会结贴了
#13
这样写没有问题
你重新试试
这是你的代码
using System.Data;
using System.Data.SqlClient;
interface IData
{
IDataReader GetReader(string sql);
}
public class SqlData:IData
{
public IDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection("server=yuaiwu\\yuaiwu;uid=sa;pwd=sa1234;database=oilwell");
SqlCommand command = new SqlCommand(sql,conn);
conn.Open();
SqlDataReader reader = command.ExecuteReader();
return reader;
}
}
我编译了,没有问题
你重新试试
这是你的代码
using System.Data;
using System.Data.SqlClient;
interface IData
{
IDataReader GetReader(string sql);
}
public class SqlData:IData
{
public IDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection("server=yuaiwu\\yuaiwu;uid=sa;pwd=sa1234;database=oilwell");
SqlCommand command = new SqlCommand(sql,conn);
conn.Open();
SqlDataReader reader = command.ExecuteReader();
return reader;
}
}
我编译了,没有问题
#14
没道理
你把所有代码贴出来看看
你把所有代码贴出来看看
#15
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
using System.Data.OracleClient;
namespace datareader
{
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button button1;
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null;
public Form1()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(72, 104);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(136, 64);
this.button1.TabIndex = 0;
this.button1.Text = "button1";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(292, 266);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.button1});
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void button1_Click(object sender, System.EventArgs e)
{
}
}
interface IData
{
public IDataReader GetReader(string sql);
}
public class SqlData:IData
{
public SqlDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection("server=yuaiwu\\yuaiwu;uid=sa;pwd=sa1234;database=oilwell");
SqlCommand command = new SqlCommand(sql,conn);
conn.Open();
SqlDataReader reader = command.ExecuteReader();
return reader;
}
}
public class OracleData:IData
{
public OracleDataReader GetReader(string sql)
{
OracleConnection conn = new OracleConnection("data source=oilwell;user id=oilwell;password=oilwell");
OracleCommand command = new OracleCommand(sql,conn);
conn.Open();
OracleDataReader reader = command.ExecuteReader();
return reader;
}
}
}
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
using System.Data.OracleClient;
namespace datareader
{
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button button1;
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null;
public Form1()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(72, 104);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(136, 64);
this.button1.TabIndex = 0;
this.button1.Text = "button1";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(292, 266);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.button1});
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void button1_Click(object sender, System.EventArgs e)
{
}
}
interface IData
{
public IDataReader GetReader(string sql);
}
public class SqlData:IData
{
public SqlDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection("server=yuaiwu\\yuaiwu;uid=sa;pwd=sa1234;database=oilwell");
SqlCommand command = new SqlCommand(sql,conn);
conn.Open();
SqlDataReader reader = command.ExecuteReader();
return reader;
}
}
public class OracleData:IData
{
public OracleDataReader GetReader(string sql)
{
OracleConnection conn = new OracleConnection("data source=oilwell;user id=oilwell;password=oilwell");
OracleCommand command = new OracleCommand(sql,conn);
conn.Open();
OracleDataReader reader = command.ExecuteReader();
return reader;
}
}
}
#16
interface IData
{
public IDataReader GetReader(string sql);
}
改成:
public interface IData
{
IDataReader GetReader(string sql);
}
{
public IDataReader GetReader(string sql);
}
改成:
public interface IData
{
IDataReader GetReader(string sql);
}
#17
接口声明可以声明零个或多个成员。接口的成员必须是方法、属性、事件或索引器。接口不能包含常数、字段、运算符、实例构造函数、析构函数或类型,也不能包含任何种类的静态成员。
所有接口成员都隐式地具有 public 访问权限。接口成员声明包含任何修饰符属于编译时错误。具体地说,接口成员包含下列任何修饰符属于编译时错误:abstract、public、protected、internal、private、virtual、override 或 static。
reference:
ms-help://MS.VSCC/MS.MSDNVS.2052/csspec/html/vclrfcsharpspec_13_2.htm
interface IData
{
public IDataReader GetReader(string sql);
}
改成
interface IData
{
IDataReader GetReader(string sql);
}
public class SqlData:IData
{
public SqlDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection("server=yuaiwu\\yuaiwu;uid=sa;pwd=sa1234;database=oilwell");
SqlCommand command = new SqlCommand(sql,conn);
conn.Open();
SqlDataReader reader = command.ExecuteReader();
return reader;
}
}
public class OracleData:IData
{
public OracleDataReader GetReader(string sql)
{
OracleConnection conn = new OracleConnection("data source=oilwell;user id=oilwell;password=oilwell");
OracleCommand command = new OracleCommand(sql,conn);
conn.Open();
OracleDataReader reader = command.ExecuteReader();
return reader;
}
}
改成
public class SqlData:IData
{
public IDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection("server=yuaiwu\\yuaiwu;uid=sa;pwd=sa1234;database=oilwell");
SqlCommand command = new SqlCommand(sql,conn);
conn.Open();
SqlDataReader reader = command.ExecuteReader();
return reader;
}
}
public class OracleData:IData
{
public IDataReader GetReader(string sql)
{
OracleConnection conn = new OracleConnection("data source=oilwell;user id=oilwell;password=oilwell");
OracleCommand command = new OracleCommand(sql,conn);
conn.Open();
OracleDataReader reader = command.ExecuteReader();
return reader;
}
}
所有接口成员都隐式地具有 public 访问权限。接口成员声明包含任何修饰符属于编译时错误。具体地说,接口成员包含下列任何修饰符属于编译时错误:abstract、public、protected、internal、private、virtual、override 或 static。
reference:
ms-help://MS.VSCC/MS.MSDNVS.2052/csspec/html/vclrfcsharpspec_13_2.htm
interface IData
{
public IDataReader GetReader(string sql);
}
改成
interface IData
{
IDataReader GetReader(string sql);
}
public class SqlData:IData
{
public SqlDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection("server=yuaiwu\\yuaiwu;uid=sa;pwd=sa1234;database=oilwell");
SqlCommand command = new SqlCommand(sql,conn);
conn.Open();
SqlDataReader reader = command.ExecuteReader();
return reader;
}
}
public class OracleData:IData
{
public OracleDataReader GetReader(string sql)
{
OracleConnection conn = new OracleConnection("data source=oilwell;user id=oilwell;password=oilwell");
OracleCommand command = new OracleCommand(sql,conn);
conn.Open();
OracleDataReader reader = command.ExecuteReader();
return reader;
}
}
改成
public class SqlData:IData
{
public IDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection("server=yuaiwu\\yuaiwu;uid=sa;pwd=sa1234;database=oilwell");
SqlCommand command = new SqlCommand(sql,conn);
conn.Open();
SqlDataReader reader = command.ExecuteReader();
return reader;
}
}
public class OracleData:IData
{
public IDataReader GetReader(string sql)
{
OracleConnection conn = new OracleConnection("data source=oilwell;user id=oilwell;password=oilwell");
OracleCommand command = new OracleCommand(sql,conn);
conn.Open();
OracleDataReader reader = command.ExecuteReader();
return reader;
}
}