如何使用WPF在C#.NET中访问MySql数据库?[已关闭]

slmsl1lt  于 2022-12-28  发布在  Mysql
关注(0)|答案(2)|浏览(152)
    • 已关闭**。此问题需要超过focused。当前不接受答案。
    • 想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

昨天关门了。
Improve this question
请告诉我。我正试图开发Windows应用程序在WPF与Mysql服务器数据库。
我必须使用哪种方法在Mysql数据库上创建连接?
1)实体框架或2)ADO. NET或3)其他
管理员计算机需要在他的计算机上安装mysql数据库,然后访问mysql数据库到另一个(10个或更多)客户端系统,这是在网络连接。
在这里,只有一个MySql数据库内的管理员计算机只。和所有其他客户端机器访问MySql数据库由管理员的计算机的IP地址。IP连接字符串是这样的:-

@"Data Source=10.0.0.101

另一个问题是,客户要求,当安装. exe文件在客户端机器上,那么应该有自动安装MySQL服务器数据库(即,Xampp或其他等)也。
我该怎么做呢?
我试过,ADO.NET C#代替EF连接MySQL的wpf窗口应用程序。像这样:-

public void AddUserList( UserSetUp user)  
    {  

        dbConnection.Open();  
        string query = "INSERT INTO Tble_UserSetUp (FirstName, SurName, Email, PhoneNumber, UserName, Password,Computer_Name,IP_Address,CreatedBy, CreatedDate,IsActive,Function,Department) VALUES (@FirstName, @SurName, @Email, @PhoneNumber, @UserName, @Password,@Computer_Name,@IP_Address,@CreatedBy, @CreatedDate,@IsActive,@Function,@Department)";  
        MySqlCommand insertSQL = new MySqlCommand(query, (MySqlConnection)dbConnection);  
        insertSQL.Parameters.AddWithValue("@FirstName", user.FirstName);  
        insertSQL.Parameters.AddWithValue("@SurName", user.SurName);  
        insertSQL.Parameters.AddWithValue("@Email", user.Email);  
        insertSQL.Parameters.AddWithValue("@PhoneNumber", user.PhoneNumber);  
        insertSQL.Parameters.AddWithValue("@UserName", Encrypt(user.UserName));  
        insertSQL.Parameters.AddWithValue("@Password", Encrypt(user.Password));  
        insertSQL.Parameters.AddWithValue("@Computer_Name", user.Computer_Name);  
        insertSQL.Parameters.AddWithValue("@IP_Address", user.IP_Address);  
        insertSQL.Parameters.AddWithValue("@CreatedBy", user.CreatedBy);  
        insertSQL.Parameters.AddWithValue("@CreatedDate", user.CreatedDate);  
        insertSQL.Parameters.AddWithValue("@IsActive", user.IsActive);  
        insertSQL.Parameters.AddWithValue("@Function", user.Function);  
        insertSQL.Parameters.AddWithValue("@Department", user.Department);  
        try  
        {  
            insertSQL.ExecuteNonQuery();  
            dbConnection.Close();  
        }  
        catch (Exception ex)  
        {  
            throw new Exception(ex.Message);  
        }  
    }

不使用实体框架或其他框架是个坏主意吗?

eivgtgni

eivgtgni1#

public partial class MainWindow : Window
{
    /*mysql
     * 
     * 1. add nuget mysql.data.dll(desktop application)
     * 2. using MySql.Data.MySqlClient;
     * 3. code like bellow , you can try 
     */
    private StringBuilder sb = new StringBuilder();
    public MainWindow()
    {
        InitializeComponent();
        mysql();
        tbx.Text = sb.ToString();
    }
    private void mysql()
    {
        try
        {
            var connstr = "Server=localhost;Uid=root;Pwd=123456;database=world";
            using (var conn = new MySqlConnection(connstr))
            {
                conn.Open();

                using (var cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "select * from city where countryCode= @ID";
                    cmd.Parameters.AddWithValue("@ID", "100");
                    using (var reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            var ii = reader.FieldCount;
                            for (int i = 0; i < ii; i++)
                            {
                                if (reader[i] is DBNull)
                                    sb.AppendLine("null");
                                else
                                    sb.AppendLine(reader[i].ToString());
                            }

                        }
                    }
                }
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }
}
eiee3dmh

eiee3dmh2#

参考:MySQL官方文档-Introduction to Connector/NET Programming
步骤0:设置MySql和Create a database
步骤1:创建WPF项目
步骤2:使用Nuget包管理器安装MySql. Data包
(Visual Studio)项目〉(单击)管理NuGet包
选择浏览选项卡〉搜索Mysql.data〉选择Mysql.data软件包〉安装
步骤3:在我的例子中,我在MainWindow.xaml.cs文件中创建了连接。
使用MySql. Data和MySql. Data. MySqlClient

using MySql.Data;
using MySql.Data.MySqlClient;

完整代码(与问题相关):MainWindow.xaml.cs文件

using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

using MySql.Data;
using MySql.Data.MySqlClient;

namespace EAppartments
{

    public partial class MainWindow : Window
    {
        string connStr = "server=localhost;user=root;database=YourDBName;password=yourpassword";
        
        //Connect to MySql when app starts
        //you can use OnStartUp event as well
        public MainWindow()
        {
            InitializeComponent();
            connectToMySql();
        }

        private void connectToMySql()
        {
            MySqlConnection conn = new MySqlConnection(connStr);
            try
            {
                Console.WriteLine("Connecting to MySQL...");
                conn.Open();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
            //close connection if you want
            conn.Close();
            Console.WriteLine("Done.");
        }
    }
}

有用资源:
使用WPF应用程序的Execute MySql commands
Lifecycle of WPF application

相关问题