【C#&Mysql】最全C#连接Mysql: 读、增、删、改、查

这篇具有很好参考价值的文章主要介绍了【C#&Mysql】最全C#连接Mysql: 读、增、删、改、查。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前方高能,请准备好小板凳,本文篇幅很长,由于是初学,如有不合适的还请大神指导。

最近在研究C#连接Mysql,并实现数据的读写,发现里面还有很多需要注意的,研究过程也遇到不少问题,现在将本人研究的成果分享出来,供需要的朋友学习,最终界面如下图所示,左边为数据写入的功能区(将datagridview控件的数据写入到数据库文件中),右边为数据读取与编辑、添加、查询、删除功能区(将数据库文件读取到datagridview控件中,并实现datagridview控件的编辑能够映射到数据库文件中同步更改)。话不多说,下面直接上代码。

【C#&Mysql】最全C#连接Mysql: 读、增、删、改、查

1. 将表格数据写入到数据库

主要功能是根据数据库名称,表格名称将随机生成的datagridview控件中的数据写入到数据库文件中。下面看详细步骤。

1.1 第1步:定义一个Person类

定义这个类的主要目的呢就是后面需要将数据存放到该类中,然后再将该类与datagridview进行数据绑定。

public class Person
{
    private int _num;
    public int num
    {
        get { return _num; }
        set { _num = value; }
    }

    private string _name;
    public string name
    {
        get { return _name; }
        set { _name = value; }
    }

    private string _gender;
    public string gender
    {
        get { return _gender; }
        set { _gender = value; }
    }

    private int _age;
    public int age
    {
        get { return _age; }
        set { _age = value; }
    }

    private int _salary;
    public int salary
    {
        get { return _salary; }
        set { _salary = value; }
    }

    public Person(int num, string name, string gender, int age, int salary)
    {
        this.num = num;
        this.name = name;
        this.gender = gender;
        this.age = age;
        this.salary = salary;
    }

}

 1.2 第2步:定义随机生成英文名字的方法

该方法用于随机生成所需的人名。

/// <summary>
/// 随机生成英文名字
/// </summary>
/// <returns></returns>
private static string GenerateSurname()
{
    string name = string.Empty;
    string[] currentConsonant;
    string[] vowels = "a,a,a,a,a,e,e,e,e,e,e,e,e,e,e,e,i,i,i,o,o,o,u,y,ee,ee,ea,ea,ey,eau,eigh,oa,oo,ou,ough,ay".Split(',');
    string[] commonConsonants = "s,s,s,s,t,t,t,t,t,n,n,r,l,d,sm,sl,sh,sh,th,th,th".Split(',');
    string[] averageConsonants = "sh,sh,st,st,b,c,f,g,h,k,l,m,p,p,ph,wh".Split(',');
    string[] middleConsonants = "x,ss,ss,ch,ch,ck,ck,dd,kn,rt,gh,mm,nd,nd,nn,pp,ps,tt,ff,rr,rk,mp,ll".Split(',');  // Can't start
    string[] rareConsonants = "j,j,j,v,v,w,w,w,z,qu,qu".Split(',');
    Random rng = new Random(Guid.NewGuid().GetHashCode()); 
    int[] lengthArray = new int[] { 2, 2, 2, 2, 2, 2, 3, 3, 3, 4 }; //Favor shorter names but allow longer ones
    int length = lengthArray[rng.Next(lengthArray.Length)];
    for (int i = 0; i < length; i++)
    {
        int letterType = rng.Next(1000);
        if (letterType < 775) currentConsonant = commonConsonants;
        else if (letterType < 875 && i > 0) currentConsonant = middleConsonants;
        else if (letterType < 985) currentConsonant = averageConsonants;
        else currentConsonant = rareConsonants;
        name += currentConsonant[rng.Next(currentConsonant.Length)];
        name += vowels[rng.Next(vowels.Length)];
        if (name.Length > 4 && rng.Next(1000) < 800) break; //Getting long, must roll to save
        if (name.Length > 6 && rng.Next(1000) < 950) break; //Really long, roll again to save
        if (name.Length > 7) break; //Probably ridiculous, stop building and add ending
    }
    int endingType = rng.Next(1000);
    if (name.Length > 6)
        endingType -= (name.Length * 25); //Don't add long endings if already long
    else
        endingType += (name.Length * 10); //Favor long endings if short
    if (endingType < 400) { } // Ends with vowel
    else if (endingType < 775) name += commonConsonants[rng.Next(commonConsonants.Length)];
    else if (endingType < 825) name += averageConsonants[rng.Next(averageConsonants.Length)];
    else if (endingType < 840) name += "ski";
    else if (endingType < 860) name += "son";
    else if (Regex.IsMatch(name, "(.+)(ay|e|ee|ea|oo)$") || name.Length < 5)
    {
        name = "Mc" + name.Substring(0, 1).ToUpper() + name.Substring(1);
        return name;
    }
    else name += "ez";
    name = name.Substring(0, 1).ToUpper() + name.Substring(1); //Capitalize first letter
    return name;
}

1.3 第3步:初始化datagridview表

为datagridview表格随机生成内容,总行数随机、人名随机、性别随机、年龄随机、薪资随机。

/// <summary>
/// 【方法】初始化数据表
/// </summary>
/// <param name="dataGrid">数据表的名称</param>
static void IniDataGridNew(DataGridView dataGrid)
{
    // 设置表头居中,其对齐方式一共有10种,包含竖向的顶中底和水平的左中右以及NotSet
    dataGrid.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
    //设置表头字体样式
    dataGrid.ColumnHeadersDefaultCellStyle.Font = new Font("宋体", 11);
    //设置单元格cell内容居中
    dataGrid.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
    //设置单元格cell字体样式
    dataGrid.RowsDefaultCellStyle.Font = new Font("宋体", 11);


    // 随机生成总行数
    Random r = new Random();
    int rowNum = r.Next(5, 100);

    // 定义相关变量
    List<Person> person = new List<Person>();
    Random r1 = new Random();  // 生成性别的随机数
    Random r2 = new Random();  // 生成年龄的随机数
    Random r3 = new Random();  // 生成薪资的随机数
    string[] gender = { "Man", "Female" };  // 性别数组

    // 生成随机的数据,并绑定到数据表中
    for (int i = 0; i < rowNum; i++)
    {
        Person p = new Person((i + 1), GenerateSurname(), gender[r1.Next(0, 2)], r2.Next(20, 60), r3.Next(15000, 30000));
        person.Add(p);
    }
    dataGrid.DataSource = person;
    dataGrid.Columns[0].Width = 80;
}

1.4 第4步:创建数据库

第3步完成后,所需要的数据就已经准备完成。此时编写创建新数据库的函数。

/// <summary>
/// 【方法】创建新的数据库
/// </summary>
/// <param name="dbSource">服务器名称,如localhost</param>
/// <param name="dbUid">用户名,如root</param>
/// <param name="dbPwd">密码</param>
/// <param name="dbName">新创建的数据库名称</param>
static void NewDatabase(string dbSource, string dbUid, string dbPwd, string dbName)
{
    //创建连接字符串con
    MySqlConnection con = new MySqlConnection("Data Source=" + dbSource + ";Persist Security Info=yes;UserId=" + dbUid + "; PWD=" + dbPwd + ";");
    //创建数据库的执行语句
    MySqlCommand cmd = new MySqlCommand("CREATE DATABASE " + dbName, con);
    con.Open();
    //执行语句
    try
    {
        int res = cmd.ExecuteNonQuery();
        con.Close();
    }
    catch { }
}

1.5 第5步:创建数据表

基于第4步创建的数据库,为数据库添加数据表。编写创建新数据表的方法。

/// <summary>
/// 【方法】创建数据表
/// </summary>
/// <param name="dbSource">服务器名称,如localhost</param>
/// <param name="dbUid">用户名,如root</param>
/// <param name="dbPwd">密码</param>
/// <param name="dbName">已有数据库名称</param>
/// <param name="tbName">新创建的表名称</param>
static void NewDatatable(string dbSource, string dbUid, string dbPwd, string dbName, string tbName, DataGridView dataGrid)
{
    // 获取datagridview中的数据
    StringBuilder sb = new StringBuilder();
    string colHeader0 = dataGrid.Columns[0].HeaderText;
    sb.Append(colHeader0 + " int(11) NOT NULL AUTO_INCREMENT,");
    string colHeader1 = dataGrid.Columns[1].HeaderText;
    sb.Append(colHeader1 + " TEXT(20),");
    string colHeader2 = dataGrid.Columns[2].HeaderText;
    sb.Append(colHeader2 + " TEXT(20),");
    string colHeader3 = dataGrid.Columns[3].HeaderText;
    sb.Append(colHeader3 + " int,");
    string colHeader4 = dataGrid.Columns[4].HeaderText;
    sb.Append(colHeader4 + " double,");

    string tbString = sb.ToString();

    //CREATE TABLE mytable (name VARCHAR(20), sex CHAR(1), birth DATE, birthaddr VARCHAR(20));

    //创建连接字符串con
    MySqlConnection con = new MySqlConnection("Data Source=" + dbSource + ";Persist Security Info=yes;UserId=" + dbUid + "; PWD=" + dbPwd + ";");

    string tablecmd = "USE " + dbName + "; CREATE TABLE " + tbName + " ";
    string tableText = "(" + tbString + "PRIMARY KEY(" + colHeader0 + "));";
    string newTableCMD = tablecmd + tableText;  // + tbName + tableText;
    MySqlCommand cmd = new MySqlCommand(newTableCMD, con);
    con.Open();
    int res = cmd.ExecuteNonQuery();
    con.Close();
}

1.6 第6步:将数据写入到数据库的表中

编写方法,将datagridview中的数据写入到数据库中指定的table中。

/// <summary>
/// 【方法】将datagridview中的数据写入到数据库的table中。
/// </summary>
/// <param name="dbSource">服务器名称,如localhost</param>
/// <param name="dbUid">用户名,如root</param>
/// <param name="dbPwd">密码</param>
/// <param name="dbName">已有数据库名称</param>
/// <param name="tbName">已有数据表名称</param>
/// <param name="dataGrid">datagridview的名称</param>
static void InsertDataToTable(string dbSource, string dbUid, string dbPwd, string dbName, string tbName, DataGridView dataGrid)
{
    //创建连接字符串con
    MySqlConnection con = new MySqlConnection("Data Source=" + dbSource + ";Persist Security Info=yes;UserId=" + dbUid + "; PWD=" + dbPwd + ";");

    // 打开数据库
    string tablecmd = "USE " + dbName + ";";
    MySqlCommand cmd = new MySqlCommand(tablecmd, con);
    con.Open();
    int res = cmd.ExecuteNonQuery();

    for (int i = 0; i < dataGrid.RowCount; i++)
    {
        string data = "INSERT INTO " + tbName + " VALUES (" +
            (i+1) + "," +
            "'" + dataGrid[1,i].Value + "'" + "," + 
            "'" + dataGrid[2, i].Value + "'" + "," + 
            dataGrid[3, i].Value + "," + 
            dataGrid[4, i].Value + ");";
        MySqlCommand cmd1 = new MySqlCommand(data, con);
        int res1 = cmd1.ExecuteNonQuery();
    }
    con.Close();
}

1.7 第7步:随机生成数据

为“随机生成数据”按钮编写clik事件,调用IniDataGridNew方法,可不限次数随机生成数据。

/// <summary>
/// 生成数据表
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnGenData_Click(object sender, EventArgs e)
{
    dgvNew.DataSource = null;
    dgvNew.Rows.Clear();
    IniDataGridNew(dgvNew);
}

1.8 第8步:将数据写入到数据库

为“数据写入到数据库”按钮编写Click事件,调用NewDatabase方法,NewDatatable方法,InsertDataToTable方法,完成数据写入。

/// <summary>
/// 写入到数据库
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnCreateDatabase_Click(object sender, EventArgs e)
{
    string dbSource = "localhost";
    string dbUid = "root";
    string dbPwd = "sjz123456";
    string dbName = txtDatabase.Text;
    string tbName = txtTable.Text;

    NewDatabase(dbSource, dbUid, dbPwd, dbName);
    NewDatatable(dbSource, dbUid, dbPwd, dbName, tbName, dgvNew);
    InsertDataToTable(dbSource, dbUid, dbPwd, dbName, tbName, dgvNew);
    MessageBox.Show("写入完成!");
}

2. 数据库加载及增、删、改、查

该部分主要内容为,从数据库加载指定的数据库下的数据表,并将数据加载中到界面中的datagridview中,用户对datagridview中的数据进行更改时可以同步修改数据库中的内容。

2.1 第1步:导入数据

该步分2个内容,首先编写ReadDatatable方法,用于将数据库中的数据导入到datagridview中。然后再编写“读取数据”按钮的click事件调用ReadDatatable方法。

/// <summary>
/// 【按钮】读取数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnReadData_Click(object sender, EventArgs e)
{
    string dbSource = "localhost";
    string dbUid = "root";
    string dbPwd = "sjz123456";
    string dbName = txtDatabase1.Text;
    string tbName = txtDataTabla1.Text;

    ReadDatatable(dbSource, dbUid, dbPwd, dbName, tbName, dgvView);
    MessageBox.Show("读取完成!");
}

/// <summary>
/// 【方法】绑定数据库文件与datagridview控件
/// </summary>
/// <param name="dbSource">服务器名称,如localhost</param>
/// <param name="dbUid">用户名,如root</param>
/// <param name="dbPwd">密码</param>
/// <param name="dbName">已有数据库名称</param>
/// <param name="tbName">已有数据表名称</param>
/// <param name="dataGrid">datagridview的名称</param>
static void ReadDatatable(string dbSource, string dbUid, string dbPwd, string dbName, string tbName, DataGridView dataGrid)
{
    string connString = "server=" + dbSource + "; database=" + dbName + "; uid=" + dbUid + "; pwd=" + dbPwd + ";Character Set=utf8;";
    MySqlConnection conn = new MySqlConnection(connString);
    MySqlCommand comm = new MySqlCommand();
    comm.Connection = conn;
    try
    {
        conn.Open();
        string sql = "select num ,name,gender,age,salary from " + tbName;
        MySqlDataAdapter da = new MySqlDataAdapter(sql, connString);
        DataSet ds = new DataSet();
        da.Fill(ds, tbName);
        dataGrid.DataSource = ds.Tables[tbName];
        conn.Close();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message, "操作数据库出错!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    }
}

2.2 第2步:增加数据

该步分2个内容,首先编写AddData方法,用于将界面中的四个文本输入框的内容添加到数据库。然后再编写“添加”按钮的click事件调用AddData方法。

/// <summary>
/// 【按钮】添加数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnAdd_Click(object sender, EventArgs e)
{
    string dbSource = "localhost";
    string dbUid = "root";
    string dbPwd = "sjz123456";
    string dbName = txtDatabase1.Text;
    string tbName = txtDataTabla1.Text;
    AddData(dbSource, dbUid, dbPwd, dbName, tbName, dgvView);
}

/// <summary>
/// 【方法】添加数据
/// </summary>
/// <param name="dbSource">服务器名称,如localhost</param>
/// <param name="dbUid">用户名,如root</param>
/// <param name="dbPwd">密码</param>
/// <param name="dbName">已有数据库名称</param>
/// <param name="tbName">已有数据表名称</param>
/// <param name="dataGrid">datagridview的名称</param>
private void AddData(string dbSource, string dbUid, string dbPwd, string dbName, string tbName, DataGridView dataGrid)
{
    string connString = "server=" + dbSource + "; database=" + dbName + "; uid=" + dbUid + "; pwd=" + dbPwd + ";Character Set=utf8;";
    MySqlConnection sqlCon = new MySqlConnection(connString);
    sqlCon.Open();
    MySqlDataAdapter adapter; //适配器变量
    BindingSource bindingSource = new BindingSource();

    try
    {
        string sql = string.Format("INSERT INTO " + tbName + " (name,gender,age,salary) values('{0}','{1}',{2},{3});", txtName.Text, txtGender.Text, txtAge.Text,txtSalary.Text);
        MySqlCommand cmd = new MySqlCommand(sql,sqlCon);
        int result = cmd.ExecuteNonQuery();
        if (result > 0)
            MessageBox.Show("添加成功");
        else
            MessageBox.Show("添加失败");
        adapter = new MySqlDataAdapter("select * from user", sqlCon);
        DataSet ds = new DataSet();
        adapter.Fill(ds);//填充数据至ds数据集
        bindingSource.DataSource = ds.Tables[0];//绑定数据
        dataGrid.DataSource = bindingSource;//为DataGridView数据控件绑定数据
    }
    catch
    {

    }
    finally
    {
        sqlCon.Close();

    }
}

2.3 第3步:删除数据

该步分2个内容,首先编写DeletData方法,用于将用户选中的数据进行删除。然后再编写“删除”按钮的click事件调用DeletData方法。

/// <summary>
/// 【按钮】删除数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnDelet_Click(object sender, EventArgs e)
{
    string dbSource = "localhost";
    string dbUid = "root";
    string dbPwd = "sjz123456";
    string dbName = txtDatabase1.Text;
    string tbName = txtDataTabla1.Text;
    DeletData(dbSource, dbUid, dbPwd, dbName, tbName, dgvView);
}

/// <summary>
/// 【方法】删除数据
/// </summary>
/// <param name="dbSource">服务器名称,如localhost</param>
/// <param name="dbUid">用户名,如root</param>
/// <param name="dbPwd">密码</param>
/// <param name="dbName">已有数据库名称</param>
/// <param name="tbName">已有数据表名称</param>
/// <param name="dataGrid">datagridview的名称</param>
private static void DeletData(string dbSource, string dbUid, string dbPwd, string dbName, string tbName, DataGridView dataGrid)
{

    string connString = "server=" + dbSource + "; database=" + dbName + "; uid=" + dbUid + "; pwd=" + dbPwd + ";Character Set=utf8;";
    MySqlConnection sqlCon = new MySqlConnection(connString);
    try
    {
        sqlCon.Open();

        int index = dataGrid.CurrentCell.RowIndex;
        int id = (int)dataGrid.Rows[index].Cells[0].Value;
        string sql = "delete from " + tbName + " where num=" + id + "";
        MySqlCommand cmd = new MySqlCommand(sql, sqlCon);
        int result = cmd.ExecuteNonQuery();
        MessageBox.Show(result.ToString());
    }
    catch
    {

    }
    finally
    {
        sqlCon.Close();

    }
}

2.4 第4步:编辑数据

该步分2个内容,首先编写EditData方法,用于将用户修改的数据更新到数据库中。然后再编写“编辑”按钮的click事件调用EditData方法。

/// <summary>
/// 【按钮】编辑数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnEdit_Click(object sender, EventArgs e)
{
    string dbSource = "localhost";
    string dbUid = "root";
    string dbPwd = "sjz123456";
    string dbName = txtDatabase1.Text;
    string tbName = txtDataTabla1.Text;
    EditData(dbSource, dbUid, dbPwd, dbName, tbName, dgvView);
}

/// <summary>
/// 【方法】编辑数据
/// </summary>
/// <param name="dbSource">服务器名称,如localhost</param>
/// <param name="dbUid">用户名,如root</param>
/// <param name="dbPwd">密码</param>
/// <param name="dbName">已有数据库名称</param>
/// <param name="tbName">已有数据表名称</param>
/// <param name="dataGrid">datagridview的名称</param>
private void EditData(string dbSource, string dbUid, string dbPwd, string dbName, string tbName, DataGridView dataGrid)
{
    DataGridViewRow dgr = dataGrid.CurrentRow;//获取当前编辑的行

    string connString = "server=" + dbSource + "; database=" + dbName + "; uid=" + dbUid + "; pwd=" + dbPwd + ";Character Set=utf8;";
    MySqlConnection sqlCon = new MySqlConnection(connString);
    sqlCon.Open();
    MySqlDataAdapter adapter; //适配器变量
    BindingSource bindingSource = new BindingSource();

    try
    {
        string sql = string.Format("UPDATE " + tbName + " SET name='{0}',gender='{1}',age={2},salary={3} WHERE num={4};",
        dgr.Cells[1].Value.ToString(),
        dgr.Cells[2].Value.ToString(),
        dgr.Cells[3].Value.ToString(),
        dgr.Cells[4].Value.ToString(),
        dgr.Cells[0].Value.ToString());

        MySqlCommand cmd = new MySqlCommand(sql, sqlCon);
        int result = cmd.ExecuteNonQuery();
        if (result > 0)
            MessageBox.Show("修改成功");
        else
            MessageBox.Show("修改失败");
        adapter = new MySqlDataAdapter("select * from user", sqlCon);
        DataSet ds = new DataSet();
        adapter.Fill(ds);//填充数据至ds数据集
        bindingSource.DataSource = ds.Tables[0];//绑定数据
        dataGrid.DataSource = bindingSource;//为DataGridView数据控件绑定数据
    }
    catch
    {

    }
    finally
    {
        sqlCon.Close();

    }
}

2.5 第5步:查询数据

该步分2个内容,首先编写DataQuery方法,用于在数据库中根据界面搜索框中输入的数据进行查找并获取查找到的数据,并将数据以信息窗的形式显示出来。然后再编写“查询”按钮的click事件调用DataQuery方法。

/// <summary>
/// 【按钮】查询数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnQuery_Click(object sender, EventArgs e)
{
    string dbSource = "localhost";
    string dbUid = "root";
    string dbPwd = "sjz123456";
    string dbName = txtDatabase1.Text;
    string tbName = txtDataTabla1.Text;

    DataQuery(dbSource, dbUid, dbPwd, dbName, tbName, dgvView);
   
}

/// <summary>
/// 【方法】查询数据
/// </summary>
/// <param name="dbSource">服务器名称,如localhost</param>
/// <param name="dbUid">用户名,如root</param>
/// <param name="dbPwd">密码</param>
/// <param name="dbName">已有数据库名称</param>
/// <param name="tbName">已有数据表名称</param>
/// <param name="dataGrid">datagridview的名称</param>
private void DataQuery(string dbSource, string dbUid, string dbPwd, string dbName, string tbName, DataGridView dataGrid)
{
    string connString = "server=" + dbSource + "; database=" + dbName + "; uid=" + dbUid + "; pwd=" + dbPwd + ";Character Set=utf8;";
    MySqlConnection sqlCon = new MySqlConnection(connString);
    string sql = string.Format("select * from " + tbName + " where name like '%{0}%' or gender like '%{0}%' or age like '%{0}%' or salary like '%{0}%';", txtQuary.Text);

    MySqlCommand cmd = new MySqlCommand(sql, sqlCon);
    //查询结果读取器
    MySqlDataReader reader = null;
    try
    {
        //打开连接
        sqlCon.Open();

        //执行查询,并将结果返回给读取器
        reader = cmd.ExecuteReader();
        while (reader.Read())
        {
            string res = "ID=" + reader[0].ToString() + " ,Name=" + reader[1].ToString() + " ,Gender=" +
            reader[2].ToString() + " ,Age=" + reader[3].ToString() + " ,salary=" + reader[4].ToString() + ".";
            MessageBox.Show(res);
        }
    }
    catch { }
    finally
    {
        reader.Close();
        sqlCon.Close();
    }
}

至此,所有功能已开发完成。

在开发过程中,搜索了大量的网络资源,但都没有特别全面的,希望我这篇大全资料能够对有需要的朋友提供小小的帮助,而无需到处找一些零散的资源。最后给出该案例中所用的数据库文件,义工参考。

【C#&Mysql】最全C#连接Mysql: 读、增、删、改、查

完结。 文章来源地址https://www.toymoban.com/news/detail-428998.html

到了这里,关于【C#&Mysql】最全C#连接Mysql: 读、增、删、改、查的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity、C#连接MySQL数据库

    (一)安装完MySQL后,打开Navicat进行连接,连接名随便输入,本地的(此电脑上的)MySQL主机就为: localhost或者127.0.0.1 ,用户名和密码:如果是本地MySQL就为你安装时设置的用户名和密码。 (二)(如果是本地MySQL)快速的创建如下表:   (一)创建控制台应用 (二)项目

    2023年04月08日
    浏览(73)
  • 使用C#连接MySQL数据库(详解)

    ✨前言✨ 本片文章,主要在于C#连接MySQL数据库,由于这之间无法建立直接联系,这时候就涉及到了第三方连接工具.NET,以此来建立C#与MySQL数据库的连接 🍒欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍒博主将持续更新学习记录收获,友友们有任何问题可以在评论区留

    2024年02月05日
    浏览(69)
  • C#连接Mysql数据库详细教程(内附Mysql及Navicat)

            课上教学使用的是SqlServer数据库,由于SqlServer数据库配置难以理解,故学习使用Mysql代替数据库连接。(Mysql以及Navicat安装说明在压缩包内)         Mysql连接首先需要用到Mysql.Data.dll连接文件,也就是Mysql Connector Net这一文件,下载后安装会自动在C:Program Files (x8

    2024年02月14日
    浏览(55)
  • 【C++八股】全网最全的C++语言基础八股准备(持续更新)

    指针是一个实体,需要分配内存空间。引用只是变量的别名,不需要分配内存空间。 引用在定义的时候必须进行初始化,并且不能够改变。指针在定义的时候不一定要初始化,并且指向的空间可变。(注:不能有引用的值不能为NULL) 有多级指针,但是没有多级引用,只能有

    2024年02月07日
    浏览(48)
  • Xshell连接不上排错以及解决方案(本文原因:重启网卡失败)

    目录 ​说一下我自己的排错思路: (1)检查自己想要链接的虚拟机有无开启 (2)检查windows服务里面关于虚拟机和xshell的服务是否已经开启,网络是否出错 (3)进入ens33文件查看ip ,dns1等是否出现配置错误 (4)检查防火墙有没有关闭 (5)查看ssh服务是否开启  (6)是否

    2024年02月04日
    浏览(44)
  • [C#] WinForm/WPF 实现数据库连接与操作(MySQL)

    目录 🌿前言 🌿MySQL数据库简介 🌿数据库的基本概念 🌿ADO.NET体系结构 数据提供程序(.NET Framework Data Provider) 程序数据集(DataSet) 🌿数据库的访问形式 🌿数据库的连接 🌿实现增查改删(CRUD)操作 CRUD SQL常用语句 程序实现数据读取操作 程序实现增删改操作 数据库的使用在涉及

    2024年02月09日
    浏览(44)
  • C#控制台连接Mysql数据库,有配置数据库连接字符串的配置文件

    实现功能 读取. .txt 中的配置文件,来初始化连接字符串 让连接字符串的配置文件不存在会主动创建默认的连接字符串 注意点: 需要引用Newtonsoft 使用mysql

    2024年02月10日
    浏览(59)
  • node.js-连接准备

    安装nodemon 在cmd中输入npm install nodemon -g (g代表全局安装) 报错:‘nodemon‘ 不是内部或外部命令,也不是可运行的程序 需要在电脑高级设置里的环境变量中添加node.js的路径 在cmd中输入nodemon --version无误的话说明安装成功 报错 Cannot find module \\\'express\\\'(或其他模块) 解决:在

    2024年02月07日
    浏览(43)
  • 操作系统的“冷板凳”要坐多久?万字长文解读16年开源老兵的坚持

    想知道内核研发是怎样的体验?操作系统的“冷板凳”得坐多久才有春天?本文对话龙蜥社区理事长马涛,畅所欲言聊开源,一起来看看那些开源润物细无声背后的故事以及龙蜥社区运营的道法术。 高门槛的 Linux 内核研发,如何支棱起来? 提问:首先想请马涛聊一聊自己的

    2023年04月09日
    浏览(42)
  • linux 下 sqlserver 连接 与开发准备

    最近需要再linux下开发一个服务链接SQLserver。但是没有相关经验,然后参考了网上的一些博客。有点心得记录如下。 主要参考了这个: 主要思路: 采用unixODBC + FreeTDS 封装库的方案来实现 我使用离线安装: Index of /rhel/7/prod/Packages/u/ (microsoft.com) 在上面中下载了上图中的2个安

    2024年02月10日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包