Я написал функцию ms-access в модуле под названием «StripLead». Я сделал одну строчную процедуру под названием «CallFunction». Теперь, когда я вызываю эту процедуру из ms-access, она работает нормально. Но когда я называю эту процедуру из C# я получаю ошибку:Как вызвать функцию ms-access из C#?
Undefined function 'Striplead' in expression.
Ms-код доступа модуля:
Public Function StripLead(pstrPhrase As String) As String
Dim strFirstWord As String
Dim strReturn As String
Dim intPos As Integer
strReturn = pstrPhrase
intPos = InStr(pstrPhrase, " ")
If intPos > 0 Then
strFirstWord = Left$(pstrPhrase, intPos - 1)
Select Case strFirstWord
Case "A", "An", "The"
strReturn = Right$(pstrPhrase, Len(pstrPhrase) - intPos)
End Select
End If
StripLead = strReturn
End Function
Ms-доступа процедура "CallFunction" (вид SQL):
SELECT Customers.ID, Striplead([ContactName]) AS a FROM Customers;
C# код:
public void CallStoredProcedure(string NewQry)
{
try
{
DataTable tbl = new DataTable();
using (OleDbConnection connection = new OleDbConnection(ConnectionString))
{
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = "CallFunction";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = connection;
using (OleDbDataAdapter adp = new OleDbDataAdapter(cmd))
{
adp.Fill(tbl);
}
}
}
catch(Exception ex)
{
throw;
}
}
Прошу прощения Неправильно ли этот подход. Или, если есть способ сделать вызов функции доступа ms-доступа из C# для извлечения данных. Моя цель - получить измененные данные из ms-access и заполнить datagrid на C#.