• 通过winfrom界面 修改Mysql的用户(root)的密码


    处理思路:
    1、利用MySql.Data.MySqlClient 验证当前的数据库连接信息是否正确;
    2、调用命令行 执行C:\\mysql\\bin\\mysql 的 SET PASSWORD 进行用户密码修改;
    3、利用新的用户密码 重新验证对数据库的连接是否正确;
    4、成功或失败的提示;

    示例代码:

    代码
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using MySql.Data.MySqlClient;

    namespace WinPassCheck
    {
        
    public partial class PassCheck : Form
        {
            
    public PassCheck()
            {
                InitializeComponent();
            }  

            
    #region 执行命令

            
    public string ExecuteCmd(string setupPath, string ArgumentList)
            {
                System.Diagnostics.Process p 
    = new System.Diagnostics.Process();
                p.StartInfo.FileName 
    = setupPath;
                p.StartInfo.UseShellExecute 
    = false;
                p.StartInfo.RedirectStandardInput 
    = true;
                p.StartInfo.RedirectStandardOutput 
    = true;
                p.StartInfo.RedirectStandardError 
    = true;
                p.StartInfo.CreateNoWindow 
    = true;
                p.StartInfo.Arguments 
    = ArgumentList;

                p.Start();
                
    string strRst = p.StandardOutput.ReadToEnd();
                p.WaitForExit();
                
                
    return strRst;
            }
            
    #endregion

            
    private void button1_Click(object sender, EventArgs e)
            {

                
    try
                {
                    
    string strResult = "";
                    
    string newPath = new System.IO.FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).Directory.FullName;
                    
    if (this.txtNewPassword.Text != this.txtNewPasswordConfirm.Text)
                    {
                        MessageBox.Show(
    "两次输入密码不一致");
                        
    return;
                    }

                    
    if (fnIsConnDBOK(this.txtOldPassword.Text.Trim()))
                    {
                        strResult 
    = ExecuteCmd( "C:\\mysql\\bin\\mysql"" -u root -p" + this.txtOldPassword.Text.Trim() + " -e \"SET PASSWORD FOR root@'%' = OLD_PASSWORD('" + this.txtNewPassword.Text.Trim() + "')\"");

                        
    if (fnIsConnDBOK(this.txtNewPassword.Text.Trim()))
                        {
                            MessageBox.Show(
    "修改成功");
                            
    return;
                        }
                        
    else
                        {
                            MessageBox.Show(
    "修改失败");
                            
    return;
                        }
                    }
                    
    else
                    {
                        MessageBox.Show(
    "原密码错误,请核对数据库信息及原密码信息");
                        
    return;
                    }
                    
                }
                
    catch
                {
                    MessageBox.Show(
    "设置密码失败,请确认");
                } 
            }

            
    private bool fnIsConnDBOK(string strPassword)
            {
                
    try
                {
                    
    //测试连接
                    string connectionstring = "Host=" + this.txtIP.Text.Trim();
                    connectionstring 
    += ";User ID=" + this.txtUserName.Text.Trim();
                    connectionstring 
    += ";Password=" + strPassword;
                    connectionstring 
    += ";Port=" + this.txtPort.Text.Trim();
                    connectionstring 
    += ";Database=" + this.txtDBName.Text.Trim();
                    connectionstring 
    += ";pooling=false  ";
                    
    using (MySqlConnection conn = new MySqlConnection(connectionstring))
                    {
                        
                        conn.Open();
                        conn.Close();
                        conn.Dispose();
                    }
                    
    return true;
                }
                
    catch
                {
                    
    return false;
                }
            }
        }
    }
  • 相关阅读:
    【转】快速Redhat AS4和AS5升级至Centos系统
    linux 控制cpu利用率,已经远程访问linux和文件传输
    linux windows启动问题
    Skyline TEP5.1.3二次开发入门——初级(五)
    Skyline TEP5.1.3二次开发入门——初级(四)
    Skyline TEP5.1.3二次开发入门——初级(三)
    Skyline TEP5.1.3二次开发入门——初级(六)
    基于Skyline的TEP5.1.3实现对矢量SHP文件的加载和渲染
    如何在WPF中嵌入Skyline提供的三维控件
    共享一些可以通过网络访问的MPT地址
  • 原文地址:https://www.cnblogs.com/freeliver54/p/1862521.html
Copyright © 2020-2023  润新知