Andre Grumbach
2005-04-17 21:28:26 UTC
Hallo zusammen,
ich habe mich nun eine weile mit der Umstellung auf Access
rumgequält.
Nun habe ich mir eine Avfrage zusammen gebastellt die meine
SQL Abfrage ersetzen kann.
In dieser Abfrage verwende ich die Replace Function.
SELECT *
FROM Elements
WHERE Replace(Name," ","") Like Replace("*Web Service*","
","");
Wenn ich diese Abfrage in Access ausführe functioniert der
ganze Spaß wunderbar.
Wenn ich nun jedoch via OleDb auf diese Abfrage zugreife
bekomme ich folgenden Fehler:
"Undefinierte Funktion 'Replace' in Ausdruck."
Wieso kann ich Abfrage hier nicht ausführen?
Selbst wenn ich die Abfrage im Code zusammen baue, bekomme
ich den selben Fehler.
Hier einmal den Code:
oldbElementConnection.ConnectionString =
@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=""" +
Environment.CurrentDirectory + @"\Elements.mdb""";
//string strFindCommand = @"SELECT * FROM Elements WHERE
Replace(Name, ' ', '') Like Replace('" + SearchString + "',
' ', '')";
string strFindCommand = @"[Search]";
OleDbCommand FindCommand = new OleDbCommand(strFindCommand,
oldbElementConnection);
FindCommand.CommandType = CommandType.StoredProcedure;
FindCommand.Parameters.Clear();
FindCommand.Parameters.Add("@Search",
OleDbType.VarWChar, 255).Value = SearchString;
try
{
FindCommand.Connection.Open();
System.Data.OleDb.OleDbDataReader reader =
FindCommand.ExecuteReader();
DataTable dtSearch = new DataTable("Search");
DataRow drSearch;
dtSearch.Columns.Add("Id", typeof(Guid));
dtSearch.Columns.Add("Name", typeof(string));
while(reader.Read())
{
drSearch = dtSearch.NewRow();
drSearch["Id"] = reader.GetValue(0);
drSearch["Name"] = reader.GetValue(1);
dtSearch.Rows.Add(drSearch);
}
return dtSearch;
}
catch(System.Data.OleDb.OleDbException ex)
{
string str = ex.Message;
}
Weiß einer wie ich diese Problem beheben kann?
Gruß,
Andre
ich habe mich nun eine weile mit der Umstellung auf Access
rumgequält.
Nun habe ich mir eine Avfrage zusammen gebastellt die meine
SQL Abfrage ersetzen kann.
In dieser Abfrage verwende ich die Replace Function.
SELECT *
FROM Elements
WHERE Replace(Name," ","") Like Replace("*Web Service*","
","");
Wenn ich diese Abfrage in Access ausführe functioniert der
ganze Spaß wunderbar.
Wenn ich nun jedoch via OleDb auf diese Abfrage zugreife
bekomme ich folgenden Fehler:
"Undefinierte Funktion 'Replace' in Ausdruck."
Wieso kann ich Abfrage hier nicht ausführen?
Selbst wenn ich die Abfrage im Code zusammen baue, bekomme
ich den selben Fehler.
Hier einmal den Code:
oldbElementConnection.ConnectionString =
@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=""" +
Environment.CurrentDirectory + @"\Elements.mdb""";
//string strFindCommand = @"SELECT * FROM Elements WHERE
Replace(Name, ' ', '') Like Replace('" + SearchString + "',
' ', '')";
string strFindCommand = @"[Search]";
OleDbCommand FindCommand = new OleDbCommand(strFindCommand,
oldbElementConnection);
FindCommand.CommandType = CommandType.StoredProcedure;
FindCommand.Parameters.Clear();
FindCommand.Parameters.Add("@Search",
OleDbType.VarWChar, 255).Value = SearchString;
try
{
FindCommand.Connection.Open();
System.Data.OleDb.OleDbDataReader reader =
FindCommand.ExecuteReader();
DataTable dtSearch = new DataTable("Search");
DataRow drSearch;
dtSearch.Columns.Add("Id", typeof(Guid));
dtSearch.Columns.Add("Name", typeof(string));
while(reader.Read())
{
drSearch = dtSearch.NewRow();
drSearch["Id"] = reader.GetValue(0);
drSearch["Name"] = reader.GetValue(1);
dtSearch.Rows.Add(drSearch);
}
return dtSearch;
}
catch(System.Data.OleDb.OleDbException ex)
{
string str = ex.Message;
}
Weiß einer wie ich diese Problem beheben kann?
Gruß,
Andre