百度就查到一个和我问题一样的!~!~最终也没有解决办法!~不知道是什么原因呀。
总是提示 “Do.SQLServerDAL.selectPerform”并不包含“excount()”的定义Do.SQLServerDAL.selectPerform 类
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;namespace Do.SQLServerDAL
{
public class selectPerform
{
private SqlConnection conn;
private SqlCommand comm;
private SqlDataAdapter da;
private DataTable dtable;
private SqlDataReader dr;
public string CommandText;
public selectPerform()
{
conn = new SqlConnection(Config.connStr);
comm = new SqlCommand();
}
private void commConfig()
{
comm.Connection = conn;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = CommandText;
}
public int excount()
{
commConfig();
if (conn.State == ConnectionState.Open) { conn.Close(); }
conn.Open();
return comm.ExecuteNonQuery();
}
public DataTable dt()
{
commConfig();
da = new SqlDataAdapter(comm);
dtable = new DataTable();
da.Fill(dtable);
return dtable;
}
public SqlDataReader DReader()
{
commConfig();
if (conn.State == ConnectionState.Open) { conn.Close(); }
conn.Open();
dr= comm.ExecuteReader(CommandBehavior.CloseConnection);
return dr;
}
public void closeReader()
{
conn.Close();
dr.Close();
}
public string this[string var]
{
get { return ""; }
set
{
comm.Parameters.AddWithValue(var, value);
}
}
}
}
页面调用:Do.SQLServerDAL.selectPerform sp = new Do.SQLServerDAL.selectPerform();
sp.CommandText = "Do_NewsUpdate";
sp["Id"] = HiddenField1.Value.ToString();
if (sp.excount() == 1) 就到这里提示错误
{
}Do.SQLServerDAL.selectPerform类生成一切正常,一出问题的时候吧。我就重新生成一下那个类,有的时候就好一下,页面可以生成通过!~,可是过不了一分钟。就又提示那个错误了。总是这样。。写代码的时候Do.SQLServerDAL.selectPerform 点一下,出来方法列表里还可以选到excount() 但就是编译,调试的时候就总是找不到,有的时候勉强生成好了,一浏览,还是提示这个错误。我是把那个方法改名,换成索引器。也都是老样子。!~我就郁闷了!~好几天了!~!~整地我都没心情干活了!~帮帮忙吧!~我是不到迫不得已,不能在这里发贴求助的,求你们了。帮帮
总是提示 “Do.SQLServerDAL.selectPerform”并不包含“excount()”的定义Do.SQLServerDAL.selectPerform 类
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;namespace Do.SQLServerDAL
{
public class selectPerform
{
private SqlConnection conn;
private SqlCommand comm;
private SqlDataAdapter da;
private DataTable dtable;
private SqlDataReader dr;
public string CommandText;
public selectPerform()
{
conn = new SqlConnection(Config.connStr);
comm = new SqlCommand();
}
private void commConfig()
{
comm.Connection = conn;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = CommandText;
}
public int excount()
{
commConfig();
if (conn.State == ConnectionState.Open) { conn.Close(); }
conn.Open();
return comm.ExecuteNonQuery();
}
public DataTable dt()
{
commConfig();
da = new SqlDataAdapter(comm);
dtable = new DataTable();
da.Fill(dtable);
return dtable;
}
public SqlDataReader DReader()
{
commConfig();
if (conn.State == ConnectionState.Open) { conn.Close(); }
conn.Open();
dr= comm.ExecuteReader(CommandBehavior.CloseConnection);
return dr;
}
public void closeReader()
{
conn.Close();
dr.Close();
}
public string this[string var]
{
get { return ""; }
set
{
comm.Parameters.AddWithValue(var, value);
}
}
}
}
页面调用:Do.SQLServerDAL.selectPerform sp = new Do.SQLServerDAL.selectPerform();
sp.CommandText = "Do_NewsUpdate";
sp["Id"] = HiddenField1.Value.ToString();
if (sp.excount() == 1) 就到这里提示错误
{
}Do.SQLServerDAL.selectPerform类生成一切正常,一出问题的时候吧。我就重新生成一下那个类,有的时候就好一下,页面可以生成通过!~,可是过不了一分钟。就又提示那个错误了。总是这样。。写代码的时候Do.SQLServerDAL.selectPerform 点一下,出来方法列表里还可以选到excount() 但就是编译,调试的时候就总是找不到,有的时候勉强生成好了,一浏览,还是提示这个错误。我是把那个方法改名,换成索引器。也都是老样子。!~我就郁闷了!~好几天了!~!~整地我都没心情干活了!~帮帮忙吧!~我是不到迫不得已,不能在这里发贴求助的,求你们了。帮帮
即声明接口IDataTest,
该接口包含方法public int excount(),
selectPerform类实现该接口,通过接口调用
即声明接口IDataTest,
该接口包含方法public int excount(),
selectPerform类实现该接口,通过接口调用
ExecuteNonQuery()方法主要用户更新数据,通常它使用Update,Insert,Delete语句来操作数据库,其方法返回值意义:对于 Update,Insert,Delete 语句 执行成功是返回值为该命令所影响的行数,如果影响的行数为0时返回的值为0,如果数据操作回滚得话返回值为-1,对于这种更新操作 平时所用的是否大于0的判断操作应该没有问题而且比较好,但是对于其他的操作如对数据库结构的操作,如果操作成功时返回的却是-1
sp["Id"] = HiddenField1.Value.ToString();
3tzjq 谢谢你的参与,我那只是列出一个ID,表示出个意思,那个没问题。里面的方法,命令什么的都没有问题,刚开始写完这个方法的时候没有问题,几天以后出现的这个问题。不知道是什么原因老是查不到
public int excount()
{
commConfig();
if (conn.State == ConnectionState.Open) { conn.Close(); }
conn.Open();
return comm.ExecuteNonQuery();
}Open()后直接返回了影响行。没有close()
建议先OPEN过后就CLOSE
不要将一个连接长时间OPEN。即占资源。也不安全。
{
int i=0;
commConfig();
if (conn.State == ConnectionState.Open) { conn.Close(); }
conn.Open();
i = comm.ExecuteNonQuery();
conn.close();
return i;
}
我也考虑过这个问题!~
但是我用Reflector查看的时候,没有复盖!~里面有这个方法!~!~还是郁闷喔!~
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;namespace Do.SQLServerDAL
{
public class selectPerform
{
private SqlConnection conn;
private SqlCommand comm;
//private SqlDataAdapter da;
//private DataTable dtable;
//private SqlDataReader dr;
public string CommandText;
public selectPerform()
{
conn = new SqlConnection();//(Config.connStr);
comm = new SqlCommand();
comm.Connection = conn;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = CommandText;
}
//private void commConfig()
//{
// comm.Connection = conn;
// comm.CommandType = CommandType.StoredProcedure;
// comm.CommandText = CommandText;
//}
public int excount()
{
//commConfig();
//if (conn.State == ConnectionState.Open) { conn.Close(); }
//conn.Open();
try
{
conn.Open();
return comm.ExecuteNonQuery();
}
catch (Exception e1){ throw e1;}
finally
{
if (conn.State == ConnectionState.Open) { conn.Close(); }
}
}
public DataTable dt()
{
//commConfig();
try
{
SqlDataAdapter da = new SqlDataAdapter(comm);//局部变量最好定义在方法中 这样方便系统回收
DataTable dtable = new DataTable();
da.Fill(dtable);
return dtable;
}
catch (Exception e1) { throw e1; }
finally
{
if (conn.State == ConnectionState.Open) { conn.Close(); }
}
}
public SqlDataReader DReader()
{
//commConfig();
try
{
if (conn.State == ConnectionState.Open) { conn.Close(); }
conn.Open();
SqlDataReader dr = comm.ExecuteReader(CommandBehavior.CloseConnection);
return dr;
}
catch (Exception e1) { throw e1; }
} //public void closeReader()//这个方法可有可无 外面关闭是一样的
//{
// //conn.Close();
// dr.Close();
//}
public void ClearParameters()//可能少的就是这个方法 ,我只看到了添加没看到删除
{
comm.Parameters.Clear();
}
public string this[string var]
{
get { return ""; }
set
{
comm.Parameters.AddWithValue(var, value);
}
}
}
}自己看看吧 我稍微改了下
------ 已启动生成: 项目: Do.model, 配置: Debug Any CPU ------
生成启动时间 2008-11-25 18:15:37。
目标 _CopyFilesMarkedCopyLocal:
正在将文件从“bin\Do.SQLServerDAL.dll”复制到“..\..\..\企业网站CMS\bin\Do.SQLServerDAL.dll”。
正在将文件从“bin\Do.SQLServerDAL.pdb”复制到“..\..\..\企业网站CMS\bin\Do.SQLServerDAL.pdb”。
目标 CopyFilesToOutputDirectory:
Do.model -> E:\制作\web\测试程序\企业网站CMS\bin\Do.model.dll生成成功。已用时间 00:00:00.07
------ 已启动生成: 项目: E:\...\企业网站CMS\, 配置: Debug .NET ------
正在验证网站
正在生成目录“/企业网站CMS/Inc/Default/”。
正在生成目录“/企业网站CMS/manage/AdminDefaultTheme/”。
正在生成目录“/企业网站CMS/manage/ChanngeMenu/”。
正在生成目录“/企业网站CMS/manage/”。E:\制作\web\测试程序\企业网站CMS\manage\Catalog.aspx.cs(61,16): 错误 CS0117: “Do.SQLServerDAL.selectPerform”并不包含“excount”的定义
E:\制作\web\测试程序\企业网站CMS\manage\Catalog.aspx.cs(76,13): 错误 CS0019: 运算符“==”无法应用于“Do.SQLServerDAL.selectPerform”和“int”类型的操作数
E:\制作\web\测试程序\企业网站CMS\manage\Catalog.aspx.cs(110,16): 错误 CS0117: “Do.SQLServerDAL.selectPerform”并不包含“excount”的定义
E:\制作\web\测试程序\企业网站CMS\manage\News.aspx.cs(170,20): 错误 CS0117: “Do.SQLServerDAL.selectPerform”并不包含“excount”的定义
E:\制作\web\测试程序\企业网站CMS\manage\About.aspx.cs(86,20): 错误 CS0117: “Do.SQLServerDAL.selectPerform”并不包含“excount”的定义
E:\制作\web\测试程序\企业网站CMS\manage\About.aspx.cs(161,16): 错误 CS0117: “Do.SQLServerDAL.selectPerform”并不包含“excount”的定义
验证完成
------ 已启动生成: 项目: Do.SQLServerDAL, 配置: Debug Any CPU ------
生成启动时间 2008-11-25 18:15:41。
目标 CopyFilesToOutputDirectory:
正在将文件从“obj\Debug\Do.SQLServerDAL.dll”复制到“..\..\..\企业网站CMS\bin\Do.SQLServerDAL.dll”。
Do.SQLServerDAL -> E:\制作\web\测试程序\企业网站CMS\bin\Do.SQLServerDAL.dll
正在将文件从“obj\Debug\Do.SQLServerDAL.pdb”复制到“..\..\..\企业网站CMS\bin\Do.SQLServerDAL.pdb”。生成成功。已用时间 00:00:00.06
===================================================================================看这生成顺序是不是有问题?生成两次Do.SQLServerDAL
开始一次,结尾一次!~~!
喔喔!~哈哈哈!~高兴死我了!~~!!~
谢谢各位朋友,哇哈哈!~!~!~原来是,我还有一个类库,Do.model 这个类库是要引用Do.SQLServerDAL这个类库的.但是当Do.SQLServerDAL更新 的时候Do.model所引用的Do.SQLServerDAL没有更新,还是旧版的.当生成页面的时候,那个没有更新过的Do.SQLServerDAL类库就随Do.model 把更新过的Do.SQLServerDAL给覆盖了!~
这也许就是24楼我发出的输信息所显示的原因吧,哈哈.12楼兄弟,谢啦.你的意见让我更加有信心的把问题放在这个问题上面查找.哈哈.以后大家要注意喽!!~我不知道你们出没出过这问题哈!~
反正都要注意一下喽!!~我好高兴呀.郁闷我N天的问题!终于解决了!~!结贴.给分,人人有份!~~!!~