日期:2014-05-18  浏览次数:20395 次

大菜鸟问题
假设有一个文章发布系统

它的储存文章的表的列为   id(uniqueidentifier)     title     content       其它...

比如说现在要看文章

点击网站上的标题   "微软新技术预览 "

然后可以查看该文章

请问它的查询语句是怎样的?

select   *   from   Article   where   title   =   "微软新技术预览 "

select   *   from   Article   where   id   =   "... "

如果用第一种方法,那么拥有唯一值的   id   就多余了

如果用第二种方法,那么当我点击标题的时候,id   怎么得到?

或者说这个id   是存放在什么地方的?可以方便获得

------解决方案--------------------
不用where
querystring传递参数,当点击超连接目标页面.后缀?id={0}
------解决方案--------------------
1、隐藏ID,在点标题的时候,传ID给查询语句
2、在绑定数据的时候,就将ID绑定到连接中
------解决方案--------------------
你一般的文章列表使用DataList或者DataGrid\GridView显示的,他们都可以把你的链接里面显示ID的
------解决方案--------------------
搞不懂你说的“微软新技术预览”是一篇文章还是很多文章的一个类
如果只是一篇文章的名字的话,就用你的第一个select语句就好了, ID是PK,怎么能说是多余呢,id的传递就没必要了
如果是一类文章的话,知道就该有个Category表了,里面只存储文章的类别信息,比如
   ID (PK)
Sort (一类文章的名字 : 经济、体育、政治、科技。。。)
你的表就应该改了,总之,感觉你的数据库建得不好。。或者我没看明白 


------解决方案--------------------
<asp:TemplateField HeaderText= "标 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 题 ">
<ItemTemplate>
<a href= ' <%# "../FreeState/InfoView.aspx?infoid= "+Eval( "infoid ") ' >
<%# Eval( "title ")%>
</a>
</ItemTemplate>
<ItemStyle HorizontalAlign= "left " Width= "40% " />
</asp:TemplateField>

这个是GridView的,GridView里面需要绑定infoid这个字段!
------解决方案--------------------
你一般的文章列表使用DataList或者DataGrid\GridView显示的,他们都可以把你的链接里面显示ID的

-----------
是的,当你读取数据要绑定到GridView上的时候,要读出来你的 ID,并绑上去
------解决方案--------------------
一篇文章,用title自然不好,如果你把 ”微软新技术预览“这个标题绑定在GridView或者什么控件中了,就在 RowDataBound中加一句 e.Row.Attributes.Add( "onclick ", "window.open( 'aimpage.aspx?id= "+e.Row.Cells[0].Text+ " ') ");看你的Id 绑定在第几列了。。。就用Cell[i]换下好了