Parameters xamarin表单。。。无法从SqlCommand获取参数值。。。“错误”;MarshallByRefObject“;声明其定义见';mscorlib'。。找不到

Parameters xamarin表单。。。无法从SqlCommand获取参数值。。。“错误”;MarshallByRefObject“;声明其定义见';mscorlib'。。找不到,parameters,xamarin.android,xamarin.forms,sqlcommand,marshalbyrefobject,Parameters,Xamarin.android,Xamarin.forms,Sqlcommand,Marshalbyrefobject,我有一个xamarin.forms项目。在PCL中,我有一个包含这3行代码的类 1) SqlCommand cmd=new SqlCommand()。。。。(注:这一行代码有效) 2) cmd.Parameters.Add(新的SqlParameter(“@UserID”,SqlDbType.Char,5)).Direction=ParameterDirection.Input。。。。(注:这一行代码有效) 3) var userid=cmd.Parameters[“@userid”].Valu

我有一个xamarin.forms项目。在PCL中,我有一个包含这3行代码的类

1)
SqlCommand cmd=new SqlCommand()。。。。(注:这一行代码有效)

2)
cmd.Parameters.Add(新的SqlParameter(“@UserID”,SqlDbType.Char,5)).Direction=ParameterDirection.Input。。。。(注:这一行代码有效)

3)
var userid=cmd.Parameters[“@userid”].Value。。。。(注意:这行代码不起作用)

我收到了这个消息

“按类型引用”MarshalByRefObject“声明它是在中定义的 “mscorlib”,但找不到

这3行代码适用于Android特定项目,但不适用于PCL类

我可以将参数添加到PCL类中的SqlCommand,但无法检索值

提前谢谢你的帮助


完整名称空间=System.Data.SqlClient.SqlCommand…我在…C:\Program Files(x86)\Reference Assembly\Microsoft\Framework\MonoAndroid\v1.0中引用了System.Data.dll

您引用的DLL仅适用于Mono.Android项目,不适用于PCL项目。它不能用于PCL项目。有关说明,请参阅

如果您想在PCL中使用本机Android SQLite,请使用:

  • 在PCL项目中。为依赖项服务创建接口(
    ISQLDb
    ),并将该服务与
    DependencyService.Get()一起使用:


  • SqlCommand
    的完整名称空间是什么?您在PCL中引用了任何库吗?完整名称空间=System.Data.SqlClient.SqlCommand…我在…C:\Program Files(x86)\reference Assembly\Microsoft\Framework\MonoAndroid\v1.0中引用了System.Data.dll
    public interface ISQLDb
    {
        void InitCmd();
    }
    
    private void btnClick_Clicked(object sender, EventArgs e)
    {
        //use the service any where in your PCL project
        ISQLDb db=DependencyService.Get<ISQLDb>();
        db.InitCmd();
    }
    
    //register the Dependency Service
    [assembly:Xamarin.Forms.Dependency(typeof(SQLDbImpl))]
    namespace SQLCommandDemo.Droid
    {
        //implements the ISQLDb Interface
        public class SQLDbImpl : ISQLDb
        {
            public void InitCmd()
            {
                SqlCommand cmd = new SqlCommand();
                cmd.Parameters.Add(new SqlParameter("@UserID", SqlDbType.Char, 5)).Direction = ParameterDirection.Input;
                var userid = cmd.Parameters["@UserID"].Value;
            }
        }
    }