查询语句很简单
select * from Books where BookName like '%学习%'
在查询分析其中一切正常,在网页中查询,有的能找到有的找不到,明明有的记录就是查不到
不知道什么原因
另外,系统是这样的.net2.0+sqlserver 2000,数据库是从excel文件中导过来的
select * from Books where BookName like '%学习%'
在查询分析其中一切正常,在网页中查询,有的能找到有的找不到,明明有的记录就是查不到
不知道什么原因
另外,系统是这样的.net2.0+sqlserver 2000,数据库是从excel文件中导过来的
解决方案 »
- MVC中如何在.cs代码指定Controller和Action生成一个路由地址
- 我自己用.net+sqlserver做了一个网站,想挂在网上去
- 网站发布时,提示磁盘空间不够?!在线等,急!
- 不使用runat="server" post表单的问题
- 如何从父窗口取得子窗口的数据
- GridView点编辑时如何绑定dropdownlist的值
- 今天高兴,散10分,来者先得 ^_^.....
- 有关存储过程的问题。
- 象www.che168.com/网站首页的哪个图片轮换是怎样做成的
- .net作为开发平台的优势?.net支持orale9i吗?有没有类似的文章?
- 学习ASP.NET
- ASP.NET如何实现水晶报表的网络打印?请高手指教...在线等...
欢迎大家来我的博客作客:http://blog.csdn.net/aafshzj/
我正在写一系列关于AAF组件框架的文章。该框架能对开发工作提供很多帮助,并极大地提高开发效率。希望大家看一看并提出宝贵建议。
Connection.Open();
SqlCommand command = new SqlCommand("queryByName", Connection);
command.CommandType = CommandType.StoredProcedure;
SqlParameter myParameter = new SqlParameter();
myParameter.ParameterName = "@BookName";
myParameter.SqlDbType = SqlDbType.NVarChar;
myParameter.Direction = ParameterDirection.Input;
myParameter.Value = "%" + txtSearch.Text.Trim() + "%";
command.Parameters.Add(myParameter);
Dr = command.ExecuteReader();
while (Dr.Read())
{
gvSearchResult.DataSource = Dr;
gvSearchResult.DataBind();
}
Dr.Close();
myParameter.Value = "'%" + txtSearch.Text.Trim() + "%'";
当你dr.read()只读了一条语句,当然在你的gvSearchResult中只有条信息。
你看是不是这个问题。
数据源请采用dataset,datatable,arraylist等。
没有看到你存储过程中如何写
但我建议模糊匹配不要写到这里,要在存储过程中写
{
gvSearchResult.DataSource = Dr;
gvSearchResult.DataBind();
}
这里的问题
exec queryByName @BookName = N'%地名%'
在查询分析器中正常,但是网页中还是不行
Dr = command.ExecuteReader();
gvSearchResult.DataSource = Dr;
gvSearchResult.DataBind();
while (Dr.Read())
{
gvSearchResult.DataBind();
}
这样就没有问题了,原来只注意看结果的不同,没有发现只有当匹配数据项只有一条的时候,才会出这个问题,已开始就用dataset的话就不会出现这个问题了,本来想用dr能够节省点资源,不过我要试试看两者效率相差有多大。
经过大家的讨论,我把问题解决了,也学到了一些新东西,谢谢。
Dr = command.ExecuteReader();
Dr.Close();
gvSearchResult.DataSource = Dr;
gvSearchResult.DataBind();