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