Det har varit lite dåligt med svar här, men jag gör ett försök till
Jag har en array som innehålleralfabetet. Jag vill se om jag har några
titlar som börjar på samma bokstav.
string SQL="";
string visaAlfa="";
DBConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data
Source= " + Server.MapPath("Data") + "\\allt.mdb;Persist Security Info=False");
string info = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,Å,Ä,Ö";
string[] arInfo = new string[29];
char[] splitter = {','};
arInfo = info.Split(splitter);
for(int x = 0; x < arInfo.Length; x++)
{
SQL = "SELECT Title FROM t_Lyrics WHERE left(Title,1) = '" +
(arInfo[x]) + "' ORDER BY left(Title,1)";
Adapter = new OleDbDataAdapter(SQL,DBConn);
DataSet ds = new DataSet();
Adapter.Fill(ds, "Texter");
if(ds.Tables["Texter"].Columns["Title"].ToString().Equals(arInfo[x]))
visaAlfa +="<a HREF=result.asp?id=" + (arInfo[x]) + " target=mitten>" +
(arInfo[x]) + "</a> ";
else
visaAlfa += (arInfo[x])+ " ";
}
lAlfaBetet.Text = visaAlfa;
JAg får inga fel med den här koden, men den visar inga "träffar" trots att
de finns. Vad gör jag för fel?
Hej Dino.
Tack för svaret, det var ett helt nytt sätt som jag inte har sett innan.
Nu tog jag och kopierade din kod rakt av (innan jag försöker att lära mig den),
och jag fick en del fel. Först, jag har klistrat in detta i codebehind, jag urgår
ifrån att det skulle vara så.
Här är de fel som jag fick;
List<string>
c:\inetpub\wwwroot\ASP_Net-Test\Vistext\Index.aspx.cs(54):
Invalid expression term 'string'
col
c:\inetpub\wwwroot\ASP_Net-Test\Vistext\Index.aspx.cs(54): ;
expected
new List<string>();
c:\inetpub\wwwroot\ASP_Net-Test\Vistext\Index.aspx.cs(54):
A new expression requires () or [] after type
..detta var bara början, men om jag förstår hur du har tänkt så kanske
jag kan rätta till resten själv.
[REDIGERAT]
JAg hittade felet på mi första kod:
int rader = ds.Tables["Texter"].Rows.Count;
if(rader > 0)
osv
Börjar med att ta ut de bokstäver som finns och lägger in de i en collection, "col". Detta görs endast en gång. Får ju tänka på prestandan.
Lägger sen in alla bokstäver i alfabetet i en annan collection, "alp".
Sen loopar jag igenom "alp" och för varje bokstav så kolla jag om den bokstaven finns i "col".
Om den gör det så skapas en länk, annars inte.
Koden är .net 2 specifik och du måste inkludera namespacen.
using System.Text;
using System.Collections.Generic;
Och ja, mitt sätt är bra mycket bättre än det du tänkte använda.
Nja jag ifrågarsätter inte det, som jag skrev det var ett okänt sätt att skriva på för mig.
Jag åker på patrull iallafall:
c:\inetpub\wwwroot\ASP_Net-Test\Vistext\Index.aspx.cs(14): The type or
namespace name 'Generic' does not exist in the class or
namespace 'System.Collections' (are you missing an assembly reference?)