主题:  蓝鲸老大,我有问题!!

Lukiya

职务:普通成员
等级:1
金币:0.0
发贴:59
#12004/11/17 19:32:51
自学到数据绑定了。

今天在写个歌手分类,情况如下。
页面里有26个Panel,每个Panel里装名字里同一个字母开头的歌手。

想从数据库中读取出每个字母对应的歌手,并让他们全部横向显示,而且每个歌手名字带链接,可以用控件实现么,该用哪个控件
DataGrid?Repetor?DataList?好像都没有横向显示,莫非只有用ASP老办法…………



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#22004/11/17 19:37:38
DataList



Lukiya

职务:普通成员
等级:1
金币:0.0
发贴:59
#32004/11/17 20:19:29
哦?可以么,去尝试下。谢谢楼上!



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#42004/11/17 20:31:14
记录里应该有字母这个字段吧,中文的在存储时就要考虑用一个字段存储开头字母,这样在查询时效率就高。
这样可以用查询,并按字母排序。
DataGrid我印象中比较适合于数据显示,如果要用一些复杂的排版,灵活性不够。DataList适中。Repetor灵活性最好,但功能相对没有上两控件强。
每种控件都有用处,要看怎么设计了。程序员也有自己爱,我个人比较喜欢Repeator,但如果一般显示DataGrid开发速度较快。


非常大鱼

Lukiya

职务:普通成员
等级:1
金币:0.0
发贴:59
#52004/11/17 20:32:18
晕,问题如下,帮我看下。
OleDbConnection myConn;
DataSet ds = new DataSet();
string sSortID = Request.QueryString["SortID"];
// 读取连接字符串
string sConnectionString = ConfigurationSettings.AppSettings["OleConnStr"];
string sSel = "Select * From Singer Where A_Z = Z And SortID = "+sSortID;
myConn = new OleDbConnection(sConnectionString);    // 建立连接对象
OleDbDataAdapter MyAdapter = new OleDbDataAdapter(sSel,myConn);
MyAdapter.Fill(ds,"Singer");

DataList_A.DataSource = ds.Tables["Singer"].DefaultView;
DataList_A.DataBind();

-----------------------------------------------------我是分割线--------------------------------------------------
说MyAdapter.Fill(ds,"Singer"); 这里“至少一个参数没有被指定值。”,怎么回事?!我照书上格式写的呀??



Lukiya

职务:普通成员
等级:1
金币:0.0
发贴:59
#62004/11/17 20:34:34
蓝鲸在上个帖子中说
引用:
记录里应该有字母这个字段吧,中文的在存储时就要考虑用一个字段存储开头字母,这样在查询时效率就高。
.....


有有有,楼上那段SQL语言里的A_Z字段就是存储歌手首字母的。



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#72004/11/17 20:35:04
myConn.Open()


非常大鱼

Lukiya

职务:普通成员
等级:1
金币:0.0
发贴:59
#82004/11/17 20:38:07
加了myConn.Open()后的程序

OleDbConnection myConn;
DataSet ds = new DataSet();
string sSortID = Request.QueryString["SortID"];
// 读取连接字符串
string sConnectionString = ConfigurationSettings.AppSettings["OleConnStr"];
string sSel = "Select * From Singer Where A_Z = Z And SortID = "+sSortID;
myConn = new OleDbConnection(sConnectionString); // 建立连接对象
OleDbDataAdapter MyAdapter = new OleDbDataAdapter(sSel,myConn);
myConn.Open();
MyAdapter.Fill(ds,"Singer");

DataList_A.DataSource = ds.Tables["Singer"].DefaultView;
DataList_A.DataBind();

依然提示……………………我晕



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#92004/11/17 20:42:53
string sSel = "Select * From Singer Where A_Z = 'Z' And SortID = "+sSortID;


非常大鱼

Lukiya

职务:普通成员
等级:1
金币:0.0
发贴:59
#102004/11/17 20:49:05
1、汗,原来如此,是不是所有的SQL语句"="右面都必须加''号?
还有,为什么sSortID又不加呢?

2、继续汗,页面显示出来了,但是不显示数据,明明数据库里A_Z字段里为Z的歌手一大串



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#112004/11/17 20:49:15
A_Z = Z?

你不会写了26条sql吧?



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#122004/11/17 20:50:14
字符串需要引号,整型不需要,这个在你写VB的时候也应该接触到的概念吧



Lukiya

职务:普通成员
等级:1
金币:0.0
发贴:59
#132004/11/17 20:57:11
以前ASP里写SQL感觉从来没有加过''也能成功……好像是……

对的,我准备写26条SQL,不然怎么办??

怎么才能只写一条又在页面显示上全部A到Z的所有歌手?前提是要能分类,而且带有字母提示,不然用户找起歌手来太麻烦。



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#142004/11/17 21:00:14
你可以用DataView的RowFilter



Lukiya

职务:普通成员
等级:1
金币:0.0
发贴:59
#152004/11/17 21:03:42
我都不懂啊,才开始接触ASP,感觉自己象在太空中飘,不知道方向~~~~

DataView是什么?控件么??
怎么调用?能不能对我上面的例子进行下代码说明?