C# 如何在xamarin中的SQLite中创建用户定义的函数?
我试图在xamarin中执行此查询C# 如何在xamarin中的SQLite中创建用户定义的函数?,c#,xamarin,sqlite.net,C#,Xamarin,Sqlite.net,我试图在xamarin中执行此查询 SELECT * FROM GPSPoint WHERE SQRT( POW({0}-lat,2) + POW({1}-lng,2) ) < 5*5 搜索之后,我发现Android开发人员可以使用该方法在SQLite中创建新函数 如何在xamarin中执行相同的操作?在下面的示例中,我将调用我的自定义sqlite函数 MySqliteAdd,它有两个参数作为输入,结果是它们的和 [SqliteFunction(FuncType = FunctionTy
SELECT * FROM GPSPoint WHERE SQRT( POW({0}-lat,2) + POW({1}-lng,2) ) < 5*5
搜索之后,我发现Android开发人员可以使用该方法在SQLite中创建新函数
如何在xamarin中执行相同的操作?在下面的示例中,我将调用我的自定义sqlite函数 MySqliteAdd,它有两个参数作为输入,结果是它们的和
[SqliteFunction(FuncType = FunctionType.Scalar, Arguments = 2, Name = "MySqliteAdd")]
public class MySqliteAdd : SqliteFunction
{
public override object Invoke(object[] args){
return System.Convert.ToInt32(args[0]) + System.Convert.ToInt32(args[1]);
}
}
您可以在如下所示的sqlite查询中使用它
Select MySqliteAdd(25,35)
这会给你60分的结果
最后,您必须在初始化连接之前注册函数
SqliteFunction.RegisterFunction(typeof(MySqliteAdd));
AFAIK与存储过程一样,不能在SQLite中创建函数。如果你发现我错了,请LMK,因为这对我有好处。我甚至不确定这是一个有效的查询。SQL查询将位于col=value@Takarii它是c语法中的有效查询。原始语句是var query=conn.Querystring.FormatSELECT*FROM GPSPoint,其中SQRT POW{0}-lat,2+POW{1}-lng,2<5*5,lat,lng@但是android开发者可以创建新功能。请参阅。
SqliteFunction.RegisterFunction(typeof(MySqliteAdd));