【问题标题】:How to fix Connection String error? con.Open() threw 'MySql.Data.MySqlClient.Replication.ReplicationManager'如何修复连接字符串错误? con.Open() 抛出'MySql.Data.MySqlClient.Replication.ReplicationManager'
【发布时间】:2019-08-25 23:17:51
【问题描述】:

我正在学习通过此链接连接到本地 Mysql 数据库: https://www.youtube.com/watch?v=FOZ8HNJMXXg&list=WL&index=23&t=920s 我得到一个错误,它说, “未处理的异常: System.TypeInitializationException:“MySql.Data.MySqlClient.Replication.ReplicationManager”的类型初始化程序引发了异常。发生”。

我已尝试安装 Mysql.Data、MysqlConnector、Xamarin.Mysql.Data。 并不能解决我的问题

我试图从这个链接将 Mysql.Data 切换到连接器, ReplicationManager threw an exception on opening a connection 并且仍然无法解决它并显示新错误它说“尝试添加引用/安装 nuget 包以供参考 System.Memory...”

我也搜索了谷歌,但我无法解决这个错误。

using Android.App;
using Android.OS;
using Android.Support.V7.App;
using Android.Runtime;
using Android.Widget;
using MySql.Data;
using MySql.Data.MySqlClient;
using System.Data;
using System.Configuration;

namespace App6
{
    [Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
    public class MainActivity : AppCompatActivity
    {
        private EditText _username;
        private EditText _password;
        private Button _insert;
        private TextView _syslog;  

        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.activity_main);

            _username = FindViewById<EditText>(Resource.Id.username);
            _password = FindViewById<EditText>(Resource.Id.password);
            _insert = FindViewById<Button>(Resource.Id.insert);
            _syslog = FindViewById<TextView>(Resource.Id.syslog);

            _insert.Click += _insert_Click;
        }

        private void _insert_Click(object sender, System.EventArgs e)
        {
            //string connString = "Server = db4free.net; Port = 3306; database = db_nyube; User Id = naratama; Password = naratama123; charset = utf8";
            //MySqlConnection conn = new MySqlConnection(connString);
            //MySqlConnection conn = new MySqlConnection("Server=localhost;Port=3306;database=db_nyube;User Id=root;");
            //MySqlConnection conn = new MySqlConnection("server=db4free.net;user=naratama;database=db_nyube;port=3306;password=naratama123");
            string conStr = "Server = localhost; Database = db_nyube;  Uid = root; Pwd =;";
            MySqlConnection conn = new MySqlConnection();
            conn.ConnectionString = conStr;
            //MySqlConnection conn = new MySqlConnection("Host = 127.0.0.1; UserName = root; Password =; Database = db_nyube;");
            try
            {
                if (conn.State == ConnectionState.Closed)
                {
                    conn.Open();
                    _syslog.Text = "Sukses";
                }
            }
            catch (MySqlException ex)
            {
                _syslog.Text = ex.ToString();
            }
            finally
            {
                conn.Close();
            }                  
        }
    }
}

我使用 Visual Studio 2017 最新版本 (15.9.15) 以及 Microsoft .NET Framework 版本 4.7.03056

请帮我解决这个错误。

【问题讨论】:

  • 不要使用本地主机。使用您的服务器的 IP 地址
  • 我试过了。 127.0.0.1 和 10.0.2.2
  • 使用服务器的实际 IP 地址,而不是环回地址
  • 127.0.0.1 不是Xampp本地服务器IP?当我打开 phpmyadmin 并在顶部栏上看到服务器:127.0.0.1 时。我错了吗?
  • 即环回地址。请阅读基本网络。

标签: c# android mysql visual-studio xamarin


【解决方案1】:

我只是将 Mysql.Data 更改为 Mysql.Connector,如果 Mysql.Connector 错误“对 System.Memory 的引用出现”,只需从此链接安装最新的 System.Memory:https://www.nuget.org/packages/System.Memory/

感谢@BradleyGrainger

【讨论】:

    猜你喜欢
    • 2017-12-19
    • 1970-01-01
    • 2013-04-13
    • 1970-01-01
    • 2018-06-12
    • 2012-12-24
    • 2021-06-10
    • 2023-03-18
    • 1970-01-01
    相关资源
    最近更新 更多