在新闻系统中,经常有看了这篇新闻后有上一篇和下一篇是什么的链接,这是怎么在数据库中查找上一条记录和下一条记录的,假如我的数据库中ID号不是递增的呢,怎么查
,还有就是一些相关新闻,这样的模糊查询是怎么写的
,还有就是一些相关新闻,这样的模糊查询是怎么写的
解决方案 »
- 动态绑定gridview,动态添加所有模板列(包括按钮)
- 数据库查询操作代码优化问题gridview
- InnerText和InnerHtml的疑问
- 关于session使用问题!!!
- 求助生成ID的思路,60分
- 后台不识别生成write出来的fileupload控件【求解】
- 网上现场直播摄像机信号,怎么实现,
- 如何将FileUpload控件的那个TextBox的ReadOnly属性设置为true?也就是达到不能直接输入路径的效果??
- 利用vs.net添加得方法为什么只能自动生成方法得注释,没有参数得注释
- ****很简单的问题,关于linkbutton的commandname的问题(50)******
- 对数据库进行写操作后 该返回bool还是void?
- Web页面数据导出Excel的问题?
protected string Title;
protected string fbTime;
protected string content;
protected string ID;
protected string jigou;
protected string s_id;//上一篇文章
protected string s_title;
protected string x_id;//下一篇文章
protected string x_title;
protected int wenz_type = 15;
protected string sitename = rootpath.sitename;
protected void Page_Load(object sender, EventArgs e)
{
ID = Request.QueryString["id"];
addstring();
setwenz();
} private void addstring()
{
constr = System.Configuration.ConfigurationSettings.AppSettings.Get("jdfbdata");
DataTable dt = (new LOGIC.DataAccess(constr)).RunSqlDT("select title,fabutime,content,jigou from news where id =" + ID);
if (dt.Rows.Count > 0)
{
Title = dt.Rows[0]["title"].ToString();
fbTime = dt.Rows[0]["fabutime"].ToString();
content = dt.Rows[0]["content"].ToString();
jigou = dt.Rows[0]["jigou"].ToString();
}
}
private void setwenz()
{ if (wenz_type > 0)
{
string sql = "select top 1 id,title from news where category='" + wenz_type.ToString() + "'and fabutime>'" + fbTime + "' order by fabutime";//上一篇sql
string sql2 = "select top 1 id,title from news where category='" + wenz_type.ToString() + "'and fabutime<'" + fbTime + "' order by fabutime desc";//下一篇sql DataTable dt = (new LOGIC.DataAccess(constr)).RunSqlDT(sql);
if (dt.Rows.Count > 0)
{ s_id = "gdfx.aspx?id=" + dt.Rows[0]["id"].ToString();
s_title = dt.Rows[0]["title"].ToString();
}
else
{
s_title = "无最新文章";
s_id = "#";
}
dt = (new LOGIC.DataAccess(constr)).RunSqlDT(sql2);
if (dt.Rows.Count > 0)
{ x_id = "gdfx.aspx?id=" + dt.Rows[0]["id"].ToString();
x_title = dt.Rows[0]["title"].ToString();
}
else
{
x_title = "无文章";
x_id = "#";
}
} }aspx代码:....
<body>
<table background="../images/bg.gif" width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="15">
</td>
</tr>
<tr>
<td>
<table width="95%" align="center" border="1" bordercolordark="#FFFFFF" bordercolorlight="#898989"
cellspacing="0" cellpadding="0">
<tr>
<td>
<table align="center" width="100%" bgcolor="#ffffff" border="0" cellspacing="0" cellpadding="8">
<tr>
<td align="center" class="biaoti"><font size=3 color=red type="黑体">
<%=Title%></font>
</td>
</tr>
<tr>
<td align="center">
<table width="90%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor="#898989" height="1">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign=top height=530><%=content%>
</td>
</tr>
<tr>
<td height="20">
<span style="color: #ff0033">发布时间</span>:<%=fbTime%>
</td>
</tr>
<tr>
<td style="height: 20px">
<span style="color: #ff0033">发布单位</span>:<%=jigou%>
</td>
</tr>
<tr>
<td style="height: 30px" valign=bottom>
<span style="color: #ff0033">上一篇</span>:<a href="<%=s_id %>" target=_self><%=s_title%></a>
</td>
</tr>
<tr>
<td style="height: 30px" valign=bottom>
<span style="color: #ff0033">下一篇</span>:<a href="<%=x_id %>" target=_self><%=x_title%></a>
</td>
</tr>
<tr>
<td align="center">
<input type="button" value="关闭" onclick="window.close()">
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td height="15">
</td>
</tr>
</table>
</body>
...希望对你有帮助!
==
这个不是我一两句话能说明白的,楼主google一下分词比较好
(
@beginid int,
@endid int
)
as
Declare @News table
(
RowNumber int,
NewsId int,
Did int,
NewsName varchar(100),
[Time] varchar(40),
Author varchar(20),
ClickTime int,
NewsDetails varchar(6000),
NewsPictureUrl varchar(60),
Oid int default(0)
)
insert into @news
select Row_Number() over (order by news.newsid),
NewsId,Did,NewsName,[Time],Author,ClickTime,NewsDetails,
NewsPictureUrl,Oid from news where did=1
select rownumber,newsid,Time, case when len(newsname)<18 then newsname else substring(newsname,0,18)+'...' end as newsname from @news where RowNumber>=@beginid and RowNumber<=@endid
----------------------------------
也可以为自增id,跟据id找最近的id也可以实现,直接用sql语句实现 还有就是一些相关新闻,这样的模糊查询是怎么写的
---------------------
相关新闻我认为现在一般都是基于关键词和tag上的模糊匹配搜索,用的like% %等,现在感觉用全文的分词搜索估计比较少见,一般的网站吃不消
其实分词检索也是可以的,不过最好是检索完选择性筛选,否则加入上万条,数据量大了会影响到速度和性能!所以我个人不提倡用like,最好可以在模糊中定唯一性!这样是最好的!
public void BindNextUp()
{
showID=Request.QueryString["show"];
if(showID!=null)
{
DataTable dtnextup = new DataTable();
string strNextUp = "select * from (select top 1 Postid,title from dbo.bbs_spaceposts where postid>case when (select count(*) ";
strNextUp += " from dbo.bbs_spaceposts where postid > " + showID + ") > 0 then " + showID + " else " + showID + " - 1 end order by postid)as a union ";
strNextUp +=" select * from (select top 1 Postid,title from dbo.bbs_spaceposts where postid< case when ";
strNextUp += " (select count(*) from dbo.bbs_spaceposts where postid < " + showID + ") > 0 then " + showID + " else " + showID + " + 1 end order by postid desc) as b ";
sqls.Fill_DT(strNextUp,dtnextup);
if(dtnextup.Rows.Count>0)
{
this.up.Text = "<a href=SpaceLogView.aspx?show=" + dtnextup.Rows[0]["postid"].ToString() + ">" + dtnextup.Rows[0]["title"].ToString() + "</a>";
for (int i = 0; i < dtnextup.Rows.Count; i++)
{
int upid = Convert.ToInt32(dtnextup.Rows[i]["postid"].ToString());
//判断传递的ID大小来显示上一篇下一篇
if (upid == Convert.ToInt32(showID))//查询ID相等的
{ this.netx.Text = "<a href=SpaceLogView.aspx?show=" + dtnextup.Rows[i]["postid"].ToString() + ">" + dtnextup.Rows[i]["title"].ToString() + "</a>";
}
else if (upid < Convert.ToInt32(showID))//查出ID小于ShowID的
{ this.up.Text = "<a href=SpaceLogView.aspx?show=" + dtnextup.Rows[i]["postid"].ToString() + ">" + dtnextup.Rows[i]["title"].ToString() + "</a>";
}
else
{ this.netx.Text = "<a href=SpaceLogView.aspx?show=" + dtnextup.Rows[i]["postid"].ToString() + ">" + dtnextup.Rows[i]["title"].ToString() + "</a>";
}
}
}
}
}
<div style="margin: 4px; border: 1px dashed #FF99FF;width:99%;background-color:#FF99FF;" >
<div style="float: left" class="tabletitle"> « 上一篇:【<asp:Label ID="up" runat="server" ></asp:Label> 】</div>
<div align="right">下一篇:【<asp:Label ID="netx" runat="server" ></asp:Label> 】 </div>
</div>
==
简单点做就是查询新闻标题Sql来匹配。 %匹配%