-----Urspr�ngliche Nachricht-----
Von: Pierre Naels [mailto:[EMAIL PROTECTED]
Gesendet: Montag, 10. M�rz 2003 18:12
An: [EMAIL PROTECTED]
Betreff: [Asp.net] ADO.NET und Indexing Services

Hallo Liste,
 
ich m�chte in asp.net eine Suche mit dem MS Indexing Service einrichten. Das klappt auch schon soweit. Jetzt m�chte ich die Suche mit dynamischen Inhalten aus einer db kombinieren. Dazu generiere ich aus der db pro Datensatz eine html-datei, die die Inhalte der Datens�tze in verschiedenen Metatags abbildet. Das sieht dann ungef�hr so aus:
 
=======================================================================================
<html>
<head>
<meta name="ISC_ArtikelID" content="261">
<meta name="ISC_Headline" content="Angela Maurer ganz vorne">
<meta name="ISC_Text" content="Eine Menge Text ... ">
<meta name="ISC_StartDatum" content="10/3/2002 12:00:00 AM">
<meta name="description" content="Eine Menge Text ... "></head>
<title>Angela Maurer ganz vorne</title>
<body>
</body>
</html>
=======================================================================================
 
Dem Indexing Service habe ich unter Properties gesagt, er soll die Properties ISC_ArtikelID, ISC_Headline ... cachen.
So weit, so gut.
 
Die Query in ado.net sieht so aus:
 
=======================================================================================
connstr = "Provider=MSIDXS;Data Source=Web";
OleDbConnection conn = new OleDbConnection(connstr);
OleDbCommand cmd = conn.CreateCommand();
String SQL = " SELECT DocTitle,Filename,VPath,Rank,Characterization,Size,Write,isc_text,isc_headline";
String SQL+ = " FROM SCOPE()  WHERE (CONTAINS (isc_text, '" + searchTerm + "')";
String SQL+ = " OR CONTAINS (isc_headline, '" + searchTerm + "') ";
cmd.CommandText = SQL;
OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
 
//Versuch, die columns explizit in den DataAdaptereinzuf�gen >> das wars nicht
//adapter.TableMappings.Add("ISC_TEXT","Text");
//adapter.TableMappings.Add("isc_headline","Headline");
 
DataTable dt = new DataTable("Results");
 
//Versuch, die columns explizit in den DataTable einzuf�gen >> das wars auch nicht
//dt.Columns.Add(new DataColumn("ISC_TEXT",  Type.GetType("System.String")));
//dt.Columns.Add(new DataColumn("isc_headline",  Type.GetType("System.String")));
 
 
int results = 0;
results = adapter.Fill(dt); // in dieser Zeile kommt die Fehlermeldung
DataSet ds = new DataSet("Search");
ds.Tables.Add(dt);
=======================================================================================
 
es kommt dann folgender Fehler:
 
System.Data.OleDb.OleDbException: Column 'ISC_TEXT' has not been defined. SQLSTATE=42S22
 
und das raff ich nicht! Wo denn nicht definid??
 
Ich hab ein ASP-Beispiel mit ADO in VB gefunden:
 
=======================================================================================
Set oQuery = Server.CreateObject("IXSSO.Query")
oQuery.DefineColumn "ISC_SubjectName (DBTYPE_WSTR) = d1b5d3f0-c0b3-11cf-9a92-00a0c908dbf1 ISC_SubjectName"
oQuery.Columns = "DocAuthor, vpath, doctitle, FileName, Path, Write, Size, Rank, Create, Characterization, DocCategory, SubjectName"
=======================================================================================
 
 
 
Weiss jemand, wie das mir ADO.Net und in c# geht oder hat einen anderen Ansatz zu diesem Problem???
 
Gruss
 
 
Pierre
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Antwort per Email an