当前位置:编程学习 > C#/ASP.NET >>

程序集“xxx"中的类型"xxx"的方法“MakeParam”没有实现

接口:IDbProvider 定义如下:(WebFrame.Data 命名空间下)

        DbProviderFactory Instance();

        void DeriveParameters(IDbCommand cmd);


        DbParameter MakeParam(string ParamName, DbType DbType, Int32 Size);

        string GetLastIdSql();
接口实现类:SqlServerProvider: WebFrame.Data.IDbProvider 定义如下

        public DbProviderFactory Instance()
        {
            return SqlClientFactory.Instance;
        }

       public void DeriveParameters(IDbCommand cmd)
       {
           if ((cmd as SqlCommand) != null)
           {
               SqlCommandBuilder.DeriveParameters(cmd as SqlCommand);
           }
       }

       public DbParameter MakeParam(string ParamName, DbType DbType, Int32 Size)
       {
           SqlParameter param;

           if (Size > 0)
               param = new SqlParameter(ParamName, (SqlDbType)DbType, Size);
           else
               param = new SqlParameter(ParamName, (SqlDbType)DbType);

           return param;
       }

       public string GetLastIdSql()
       {
           return "SELECT SCOPE_IDENTITY()";
       }
 
当m_provider = (IDbProvider)Activator.CreateInstance(Type.GetType(string.Format("WebFrame.Data.SqlServerProvider,WebFrame.Data.SqlServer"), false, true));
时,提示程序集“WebFrame.Data.SqlServer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”中的类型“WebFrame.Data.SqlServerProvider”的方法“MakeParam”没有实现。

但是我已经在接口实现类中实现了MakeParam这个方法了啊!怎么提示没实现呢?
我删除接口中的MakeParam()方法和GetLastIdSql()方法。然后删除接口中的这两方法。
就不会提示错误。
但是,这个类中4个方法,前两个都不提示没有实现,只有后两个提示没有实现。
求大神解释!!! --------------------编程问答-------------------- 接口中有 MakeParam,但是继承自接口的实例中没有实现 MakeParam  --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 这个问题可以搞搞清楚,顶顶顶顶! --------------------编程问答--------------------
大家有遇到的吗?
我把WebFrame.Data.SqlServer.dll 删除了。从新生成 还是报这样的错误 啊! --------------------编程问答-------------------- 顶!
高手来解决一下!
半天了都。就是不知道哪的问题! --------------------编程问答--------------------
引用 1 楼  的回复:
接口中有 MakeParam,但是继承自接口的实例中没有实现 MakeParam
  接口实现类已经实现了那个方法了啊! --------------------编程问答-------------------- 这个不知道,同求答案 --------------------编程问答--------------------
引用 9 楼  的回复:
这个不知道,同求答案

你也遇到这样的问题了?
麻烦您朝你的技术群里发一下这个问题 的连接。
求解答!
郁闷半天了。我是真不知道哪的事! --------------------编程问答-------------------- 方法错了吧 
要求返回DbParameter 你实现里返回的是SqlParameter 
没编译过去 --------------------编程问答-------------------- 接口
DbParameter MakeParam(string ParamName, DbType DbType, Int32 Size);

实现
public DbParameter MakeParam(string ParamName, DbType DbType, Int32 Size)

两者看起来是一致的.

========
是否是代码残留,你试试弄个新专案,然后就COPY 接口 与 实现过去看看.
--------------------编程问答-------------------- 接口
DbParameter MakeParam(string ParamName, DbType DbType, Int32 Size);

实现
public DbParameter MakeParam(string ParamName, DbType DbType, Int32 Size)

两者看起来是一致的.

========
是否是代码残留,你试试弄个新专案,然后就COPY 接口 与 实现过去看看.
--------------------编程问答-------------------- 接口
DbParameter MakeParam(string ParamName, DbType DbType, Int32 Size);

实现
public DbParameter MakeParam(string ParamName, DbType DbType, Int32 Size)

两者看起来是一致的.

========
是否是代码残留,你试试弄个新专案,然后就COPY 接口 与 实现过去看看.
--------------------编程问答--------------------
引用 12 楼  的回复:
接口
DbParameter MakeParam(string ParamName, DbType DbType, Int32 Size);

实现
public DbParameter MakeParam(string ParamName, DbType DbType, Int32 Size)

两者看起来是一致的.

========
是否是代码残留,你试试弄个新专案,然后……


好吧 我试试。 --------------------编程问答--------------------
引用 14 楼  的回复:
接口
DbParameter MakeParam(string ParamName, DbType DbType, Int32 Size);

实现
public DbParameter MakeParam(string ParamName, DbType DbType, Int32 Size)

两者看起来是一致的.

========
是否是代码残留,你试试弄个新专案,然后……

不行,接口类 跟实现类 都从新建立  也是同样的错误。 --------------------编程问答-------------------- Lz你无视我的11L么 --------------------编程问答--------------------
引用 17 楼  的回复:
Lz你无视我的11L么

方法那样写是对的。
返回SqlParameter是没问题的 --------------------编程问答-------------------- 在线等啊!!! --------------------编程问答-------------------- 是重写,不是搞一个名称一样的方法 --------------------编程问答--------------------
引用 11 楼  的回复:
方法错了吧 
要求返回DbParameter 你实现里返回的是SqlParameter 
没编译过去

11楼是对的,你返回类型错误啊
--------------------编程问答-------------------- 返回类型改掉试试看,不试怎么知道你的就是对的 --------------------编程问答--------------------
引用 22 楼 canglang980 的回复:
返回类型改掉试试看,不试怎么知道你的就是对的

谢谢您的回答,问题解决了,项目生成顺序的问题。 --------------------编程问答-------------------- 这个项目生成顺序跟22楼的回答有什么关系,楼主能否解释一下.

引用 23 楼  的回复:
引用 22 楼 canglang980 的回复:

返回类型改掉试试看,不试怎么知道你的就是对的

谢谢您的回答,问题解决了,项目生成顺序的问题。
--------------------编程问答-------------------- --------------------编程问答-------------------- m_provider = (IDbProvider)Activator.CreateInstance(Type.GetType(string.Format("WebFrame.Data.SqlServerProvider,WebFrame.Data.SqlServer"), false, true));哥们引用错了 --------------------编程问答-------------------- m_provider = (IDbProvider)Activator.CreateInstance(Type.GetType(string.Format("WebFrame.Data.{0}.{0}Provider,WebFrame.Data.SqlServer"), false, true)); 请添加个{0},这句话的意思是实例化WebFrame.Data.{0}空间下的{0}Provider方法,你可以查看下你的引用空间下面是否有这个,估计WebFrame.Data空间下面是没有{0}Provider方法的,在WebFrame.Data.{0}空间下,所以会报错
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,