C#窗口输出DBeaver创建的表

C#窗体输出DBeaver创建的表

1.先安装VS2019打开
2.
C#窗口输出DBeaver创建的表_第1张图片
创建新项目,选择windows窗体应用
C#窗口输出DBeaver创建的表_第2张图片
项目名称和保存的位置

C#窗口输出DBeaver创建的表_第3张图片
打开Form1.cs 点击左侧的工具箱
C#窗口输出DBeaver创建的表_第4张图片
把工具箱的DataGridView控件拖到Form1.cs窗口上
C#窗口输出DBeaver创建的表_第5张图片
DataGridView的区域就是用来输出表数据的
C#窗口输出DBeaver创建的表_第6张图片
新建类文件,选择文件——新建——新建文件——Visual类,打开,把下面这段代码复制到新建类文件中,并移入到项目里面,讲类文件名改成MySqlHelper.cs


using System;
using System.Collections;
using System.Configuration;
using MySql.Data;
using MySql.Data.MySqlClient;
using System.Data;


/// 
///MYSQLHelper 的摘要说明
/// 
public abstract class MySqlHelper
{
    //数据库连接字符串
    public static string Conn = "Database='testair2';Data Source='127.0.0.1';User Id='root';Password='123456';pooling=true";


    // 用于缓存参数的HASH表
    private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());


    /// 
    ///  给定连接的数据库用假设参数执行一个sql命令(不返回数据集)
    /// 
    /// 一个有效的连接字符串
    /// 命令类型(存储过程, 文本, 等等)
    /// 存储过程名称或者sql命令语句
    /// 执行命令所用参数的集合
    /// 执行命令所影响的行数
    public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
    {


        MySqlCommand cmd = new MySqlCommand();


        using (MySqlConnection conn = new MySqlConnection(connectionString))
        {
            PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
            int val = cmd.ExecuteNonQuery();
            cmd.Parameters.Clear();
            return val;
        }
    }


    /// 
    /// 用现有的数据库连接执行一个sql命令(不返回数据集)
    /// 
    /// 一个现有的数据库连接
    /// 命令类型(存储过程, 文本, 等等)
    /// 存储过程名称或者sql命令语句
    /// 执行命令所用参数的集合
    /// 执行命令所影响的行数
    public static int ExecuteNonQuery(MySqlConnection connection, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
    {


        MySqlCommand cmd = new MySqlCommand();


        PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
        int val = cmd.ExecuteNonQuery();
        cmd.Parameters.Clear();
        return val;
    }


    /// 
    ///使用现有的SQL事务执行一个sql命令(不返回数据集)
    /// 
    /// 
    ///举例:
    ///  int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
    /// 
    /// 一个现有的事务
    /// 命令类型(存储过程, 文本, 等等)
    /// 存储过程名称或者sql命令语句
    /// 执行命令所用参数的集合
    /// 执行命令所影响的行数
    public static int ExecuteNonQuery(MySqlTransaction trans, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
    {
        MySqlCommand cmd = new MySqlCommand();
        PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
        int val = cmd.ExecuteNonQuery();
        cmd.Parameters.Clear();
        return val;
    }


    /// 
    /// 用执行的数据库连接执行一个返回数据集的sql命令
    /// 
    /// 
    /// 举例:
    ///  MySqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
    /// 
    /// 一个有效的连接字符串
    /// 命令类型(存储过程, 文本, 等等)
    /// 存储过程名称或者sql命令语句
    /// 执行命令所用参数的集合
    /// 包含结果的读取器
    public static MySqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
    {
        //创建一个MySqlCommand对象
        MySqlCommand cmd = new MySqlCommand();
        //创建一个MySqlConnection对象
        MySqlConnection conn = new MySqlConnection(connectionString);


        //在这里我们用一个try/catch结构执行sql文本命令/存储过程,因为如果这个方法产生一个异常我们要关闭连接,因为没有读取器存在,
        //因此commandBehaviour.CloseConnection 就不会执行
        try
        {
            //调用 PrepareCommand 方法,对 MySqlCommand 对象设置参数
            PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
            //调用 MySqlCommand  的 ExecuteReader 方法
            MySqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            //清除参数
            cmd.Parameters.Clear();
            return reader;
        }
        catch
        {
            //关闭连接,抛出异常
            conn.Close();
            throw;
        }
    }


    /// 
    /// 返回DataSet
    /// 
    /// 一个有效的连接字符串
    /// 命令类型(存储过程, 文本, 等等)
    /// 存储过程名称或者sql命令语句
    /// 执行命令所用参数的集合
    /// 
    public static DataSet GetDataSet(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
    {
        //创建一个MySqlCommand对象
        MySqlCommand cmd = new MySqlCommand();
        //创建一个MySqlConnection对象
        MySqlConnection conn = new MySqlConnection(connectionString);


        //在这里我们用一个try/catch结构执行sql文本命令/存储过程,因为如果这个方法产生一个异常我们要关闭连接,因为没有读取器存在,


        try
        {
            //调用 PrepareCommand 方法,对 MySqlCommand 对象设置参数
            PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
            //调用 MySqlCommand  的 ExecuteReader 方法
            MySqlDataAdapter adapter = new MySqlDataAdapter();
            adapter.SelectCommand = cmd;
            DataSet ds = new DataSet();


            adapter.Fill(ds);
            //清除参数
            cmd.Parameters.Clear();
            conn.Close();
            return ds;
        }
        catch (Exception e)
        {
            throw e;
        }
    }






    /// 
    /// 用指定的数据库连接字符串执行一个命令并返回一个数据集的第一列
    /// 
    /// 
    ///例如:
    ///  Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
    /// 
    ///一个有效的连接字符串
    /// 命令类型(存储过程, 文本, 等等)
    /// 存储过程名称或者sql命令语句
    /// 执行命令所用参数的集合
    /// 用 Convert.To{Type}把类型转换为想要的 
    public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
    {
        MySqlCommand cmd = new MySqlCommand();


        using (MySqlConnection connection = new MySqlConnection(connectionString))
        {
            PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
            object val = cmd.ExecuteScalar();
            cmd.Parameters.Clear();
            return val;
        }
    }


    /// 
    /// 用指定的数据库连接执行一个命令并返回一个数据集的第一列
    /// 
    /// 
    /// 例如:
    ///  Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
    /// 
    /// 一个存在的数据库连接
    /// 命令类型(存储过程, 文本, 等等)
    /// 存储过程名称或者sql命令语句
    /// 执行命令所用参数的集合
    /// 用 Convert.To{Type}把类型转换为想要的 
    public static object ExecuteScalar(MySqlConnection connection, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
    {


        MySqlCommand cmd = new MySqlCommand();


        PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
        object val = cmd.ExecuteScalar();
        cmd.Parameters.Clear();
        return val;
    }


    /// 
    /// 将参数集合添加到缓存
    /// 
    /// 添加到缓存的变量
    /// 一个将要添加到缓存的sql参数集合
    public static void CacheParameters(string cacheKey, params MySqlParameter[] commandParameters)
    {
        parmCache[cacheKey] = commandParameters;
    }


    /// 
    /// 找回缓存参数集合
    /// 
    /// 用于找回参数的关键字
    /// 缓存的参数集合
    public static MySqlParameter[] GetCachedParameters(string cacheKey)
    {
        MySqlParameter[] cachedParms = (MySqlParameter[])parmCache[cacheKey];


        if (cachedParms == null)
            return null;


        MySqlParameter[] clonedParms = new MySqlParameter[cachedParms.Length];


        for (int i = 0, j = cachedParms.Length; i < j; i++)
            clonedParms[i] = (MySqlParameter)((ICloneable)cachedParms[i]).Clone();


        return clonedParms;
    }


    /// 
    /// 准备执行一个命令
    /// 
    /// sql命令
    /// OleDb连接
    /// OleDb事务
    /// 命令类型例如 存储过程或者文本
    /// 命令文本,例如:Select * from Products
    /// 执行命令的参数
    private static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, CommandType cmdType, string cmdText, MySqlParameter[] cmdParms)
    {


        if (conn.State != ConnectionState.Open)
            conn.Open();


        cmd.Connection = conn;
        cmd.CommandText = cmdText;


        if (trans != null)
            cmd.Transaction = trans;


        cmd.CommandType = cmdType;


        if (cmdParms != null)
        {
            foreach (MySqlParameter parm in cmdParms)
                cmd.Parameters.Add(parm);
        }
    }


}

其中代码

//数据库连接字符串
    public static string Conn = "Database='testair2';Data Source='127.0.0.1';User Id='root';Password='123456';pooling=true";

Database为你创建的数据库名称,Data Source为你的数据库,一般是127.0.0.1,我使用的是mariadb数据库,在配置的时候User Id用户名默认root,Password密码也是自己设置的密码,只要改成自己的参数就可以了。
C#窗口输出DBeaver创建的表_第7张图片
选取文件,将class.cs移入项目train2中,并将class.cs改名为MySqlHelper.cs
点击Form.cs窗口会出现一个Form.cs代码部分,
C#窗口输出DBeaver创建的表_第8张图片
在Form1_Load里面加一句代码

dataGridView1.DataSource = MySqlHelper.GetDataSet(MySqlHelper.Conn, CommandType.Text, "select * from student_score", null).Tables[0].DefaultView;
      

select * from后面跟的为创建的表名,运行代码
C#窗口输出DBeaver创建的表_第9张图片

输出结果

你可能感兴趣的:(mariadb,visual,studio)