|
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
|
