C#操作MYSQL数据库

目录

1、准备步骤

2、MYSQL操作流程

3、MYSQL的C#中的类

4、简单实例

总结:可以把对数据库的操作写成一个个的函数,写到一个helpsql类中,到时候使用的时候就可以直接调用,MYSQL和SQL SERVER 操作是一样的,只不过就是MYSQL要自己下载API 接口,SQL SERVER 不用下载,其他的操作都是一样的。花了一个的时间写,写博客真是累啊,写博客要趁热打铁,昨晚项目后要马上开始记录,不要拖,不然就当时候忘了又要重新开始。还有碰的很好的博客,可以转载过来当做资料开看,应该要对照着他的思路,自己做一遍,而不是看懂就行了,知易行难啊!!!!



1、准备步骤

1.网上下载MySql.Data.dll

2.在项目当中添加引用MySql.Data.dll

3.在操作类当中添加:

  using MySql.Data;

  using MySql.Data.MySqlClient;



2、MYSQL操作流程

第一步:使用SqlConnection对象连接数据库

第二步:建立SqlCommand对象,执行SQL语句

第三步:对SQL语句执行后的结果进行操作

对返回的结果分为两类

  一、用SqlDataReader直接一行一行的读取数据集;

二、DataSet联合DataAdapter来操作数据库



3、MYSQL的C#中的类

1、SqlConnection类

  构造函数:SqlConnection(connstr);

  属性:  Database//获取当前数据库或连接打开后要使用的数据库的名称

       Connectionstring//获取或设置用于打开 SQL Server 数据库的字符串

  方法:  Open()

       Close()

        Dispose()//释放所有资源

       
2、SqlCommand类  

  构造函数:SqlCommand(string,conn)

属性:  CommandType//获取或设置一个值,该值指示如何解释 CommandText 属

        CommandText //获取或设置要对数据源执行SQL 语句

        Connection//获取或设置 SqlCommand 的此实例使用的 SqlConnection

        Parameters//获取 SqlParameterCollection。参数集合

方法:  ExecuteNonQuery(): 返回受影响函数,如增、删、改操作;

         ExecuteScalar():执行查询,返回首行首列的结果;

        ExecuteReader():返回一个数据流(SqlDataReader对象)。

  实例1:

SqlCommand cmd = new  SqlCommand ()

cmd.connection =conn;

cmd.CommandType = CommandType.Text;

cmd.CommandText ="select *from [email protected]";

cmd.Parameters.Add("@ID",SqlDBType.NVarChar,10,ID).values=1;

cmd.ExecuteScalar();

  实例2:

  SqlCommand cmd = new  SqlCommand (“select *from test”,conn);

  cmd.ExecuteScalar();

注意:  ExecuteNonQuery()方法主要用户更新数据,通常它使用Update,Insert,Delete语句来操作数据库,其方法返回值意义:对于 Update,Insert,Delete  语句 执行成功是返回值为该命令所影响的行数,如果影响的行数为0时返回的值为0,如果数据操作回滚得话返回值为-1,对于这种更新操作 用我们平时所用的是否大于0的判断操作应该没有问题而且比较好,但是对于其他的操作如对数据库结构的操作,如果操作成功时返回的却是-1,这种情况跟我们平时的思维方式有点差距所以应该好好的注意了,

3、SqlDataReader类

  是由ExecuteReader()返回一个数据流(SqlDataReader对象)没有构造方法

  属性:Connection//获取与 SqlDataReader 关联的 SqlConnection

     FieldCount//获取当前行中的列数。

     HasRows//获取一个值,该值指示 SqlDataReader 是否包含一行或多行

       RecordsAffect//获取执行 Transact-SQL 语句所更改、插入或删除的行数

  方法:Read();//使 SqlDataReader 前进到下一条记录

     GetType();//获取当前实例的 Type

     NextResult();//当读取批处理 Transact-SQL 语句的结果时,使数据读取器前进到下一个结果

4、SqlDataApater类

  构造方法:SqlDataApater()

       SqlDataAdapter(SqlCommand)//初始化 SqlDataAdapter 类的新实例,用指定的 SqlCommand 作为 SelectCommand 的属性。

       SqlDataApater(string,conn)//使用 SelectCommand 和 SqlConnection 对象初始化 SqlDataAdapter 类的一个新实例

  属性:  DeleteCommand

       SelectCommand

         InsertCommand

       UpdataCommand           

  方法:    Fill(DataSet)//在 DataSet 中添加或刷新行

         Fill(DataTable)//在 DataSet 的指定范围中添加或刷新行,以与使用 DataTable 名称的数据源中的行匹配。 (继承自DbDataAdapter

       Update(DataRow[])//通过为 DataSet 中的指定数组中的每个已插入、已更新或已删除的行执行相应的 INSERT、UPDATE 或 DELETE 语句来更新数据库中的值

       Update(DataSet)//通过为指定的 DataTable 中的每个已插入、已更新或已删除的行执行相应的 INSERT、UPDATE 或 DELETE 语句来更新数据库中的值

       Update(DataTable)

实例1

  // 隐藏了SqlCommand对象的定义,同时隐藏了SqlCommand对象与SqlDataAdapter对象的绑定

SqlDataAdapter  myda= new  SqlDataAdapter("select * from test",conn);

  实例2

  SqlCommand mySqlCommand = new SqlCommand();// 创建SqlCommand

  mySqlCommand.CommandType = CommandType.Text;

  mySqlCommand.CommandText = "select * from product";

  mySqlCommand.Connection = sqlCnt;

  SqlDataAdapter myDataAdapter = new SqlDataAdapter();
  // 创建SqlDataAdapter

    myDataAdapter.SelectCommand = mySqlCommand; // 为SqlDataAdapter对象绑定所要执行的SqlCommand对象

5、DataSet类  

  命名空间:System.Data.DataSet。

  数据集,本地微型数据库,可以存储多张表。

 //使用DataSet第一步就是将SqlDataAdapter返回的数据集(表)填充到Dataset对象中:  

SqlDataAdapter myDataAdapter = new SqlDataAdapter("select * from product", sqlCnt);
DataSet myDataSet = new DataSet();        // 创建DataSet
myDataAdapter.Fill(myDataSet, "product");    // 将返回的数据集作为“表”填入DataSet中,表名可以与数据库真实的表名不同,并不影响后续的增、删、改等操作

//访问dataset中的数据
DataTable myTable = myDataSet.Tables["product"];
foreach (DataRow myRow in myTable.Rows) {
    foreach (DataColumn myColumn in myTable.Columns) {
        Console.WriteLine(myRow[myColumn]);    //遍历表中的每个单元格
    }
}
// 修改DataSet
DataTable myTable = myDataSet.Tables["product"];
foreach (DataRow myRow in myTable.Rows) {
    myRow["name"] = myRow["name"] + "商品";
}

// 将DataSet的修改提交至“数据库”
SqlCommandBuilder mySqlCommandBuilder = new SqlCommandBuilder(myDataAdapter);
myDataAdapter.Update(myDataSet, "product");
// 添加一行
DataRow myRow = myTable.NewRow();
myRow["name"] = "捷安特";
myRow["price"] = 13.2;
//myRow["id"] = 100; id若为“自动增长”,此处可以不设置,即便设置也无效
myTable.Rows.Add(myRow);

// 将DataSet的修改提交至“数据库”
SqlCommandBuilder mySqlCommandBuilder = new SqlCommandBuilder(myDataAdapter);
myDataAdapter.Update(myDataSet, "product");
// 删除第一行
DataTable myTable = myDataSet.Tables["product"];
myTable.Rows[0].Delete();

SqlCommandBuilder mySqlCommandBuilder = new SqlCommandBuilder(myDataAdapter);
myDataAdapter.Update(myDataSet, "product");

4、简单的例子

简单实例1:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using MySql.Data;
 6 using MySql.Data.MySqlClient;
 7
 8 namespace mysqltest
 9 {
10     class Program
11     {
12         static void Main(string[] args)
13         {
14           string connstr = "Server=localhost;Uid=root;Pwd=mhl83905590;Database=yuangong";
15           using (MySqlConnection conn = new MySqlConnection(connstr))
16           {
17               try
18               {
19                   conn.Open();
20                   MySqlCommand cmd = new MySqlCommand("select * from yg_table", conn);
21                   MySqlDataReader reader = cmd.ExecuteReader();
22                   int j = reader.FieldCount;
23                   for (int i = 0; i < j; i++)
24                   {
25                       Console.Write(reader.GetName(i));
26                       Console.Write("\t");
27                   }
28                   Console.Write("\n");
29                   Console.Write(reader.GetType()+"\n");
30
31                   while (reader.Read())
32                   {
33                       if (reader.HasRows)
34                       {
35                           for (int i = 0; i < j; i++)
36                           {
37                               Console.Write(reader[i]);
38                               Console.Write("\t");
39
40                           }
41                           Console.Write("\n");
42                       }
43                   }
44
45                   reader.Close();
46               }
47               catch (MySqlException ex)
48               {
49                   Console.Write(ex.ToString());
50
51               }
52               finally
53               {
54                   conn.Close();
55               }
56
57           }
58
59         }
60     }
61 }


简单实例2:

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using MySql.Data;
  6 using MySql.Data.MySqlClient;
  7 using System.Data;
  8
  9 namespace mysqltest
 10 {
 11     class Program
 12     {
 13         static void Main(string[] args)
 14         {
 15           string connstr = "Server=localhost;Uid=root;Pwd=mhl83905590;Database=yuangong";
 16           using (MySqlConnection conn = new MySqlConnection(connstr))
 17           {
 18               try
 19               {
 20                   conn.Open();
 21                   MySqlDataAdapter adapter = new MySqlDataAdapter("select * from yg_table", conn);
 22
 23                   DataSet ds = new DataSet();
 24
 25                   adapter.Fill(ds, "yg_table");
 26
 27                   DataTable mytable = ds.Tables["yg_table"];
 28                   for (int i = 0; i < 5;i++ )
 29                       Console.Write(mytable.Columns[i].ColumnName+"\t");
 30                   Console.Write("\n");
 31
 32                   foreach (DataRow myRow in mytable.Rows)
 33                   {
 34                       foreach (DataColumn myColumn in mytable.Columns)
 35                           Console.Write(myRow[myColumn]+"\t");
 36                       Console.Write("\n");
 37                   }
 38                   Console.Write(mytable.TableName+"\n");
 39
 40                   //修改
 41                   //foreach (DataRow myRow in mytable.Rows)
 42                   //{
 43                   //    myRow["name"] = "小明";
 44                   //}
 45                   //MySqlCommandBuilder mycmdbuilder = new MySqlCommandBuilder(adapter);
 46                   //adapter.Update(ds, "yg_table");
 47
 48                   //增加一行
 49                   //DataRow mynewRow = mytable.NewRow();
 50                   //mynewRow["id"] = 6;
 51                   //mynewRow["name"] = "小雷";
 52                   //mynewRow["sex"] = "女";
 53                   //mynewRow["age"] = 12;
 54                   //mynewRow["menoy"] = 12;
 55                   //mytable.Rows.Add(mynewRow);
 56                   //MySqlCommandBuilder mycmdbuilder = new MySqlCommandBuilder(adapter);
 57                   //adapter.Update(ds, "yg_table");
 58
 59                   //删除一行
 60
 61                   mytable.Rows[6].Delete();
 62                   MySqlCommandBuilder mycmdbuilder = new MySqlCommandBuilder(adapter);
 63                   adapter.Update(ds, "yg_table");
 64
 65                   for (int i = 0; i < 5; i++)
 66                       Console.Write(mytable.Columns[i].ColumnName + "\t");
 67                   Console.Write("\n");
 68
 69                   foreach (DataRow myRow in mytable.Rows)
 70                   {
 71                       foreach (DataColumn myColumn in mytable.Columns)
 72                           Console.Write(myRow[myColumn] + "\t");
 73                       Console.Write("\n");
 74                   }
 75
 76                   //MySqlCommand cmd = new MySqlCommand("select * from yg_table", conn);
 77                   //MySqlDataReader reader = cmd.ExecuteReader();
 78                   //int j = reader.FieldCount;
 79                   //for (int i = 0; i < j; i++)
 80                   //{
 81                   //    Console.Write(reader.GetName(i));
 82                   //    Console.Write("\t");
 83                   //}
 84                   //Console.Write("\n");
 85                   //Console.Write(reader.GetType()+"\n");
 86
 87                   //while (reader.Read())
 88                   //{
 89                   //    if (reader.HasRows)
 90                   //    {
 91                   //        for (int i = 0; i < j; i++)
 92                   //        {
 93                   //            Console.Write(reader[i]);
 94                   //            Console.Write("\t");
 95
 96                   //        }
 97                   //        Console.Write("\n");
 98                   //    }
 99                   //}
100
101                   //reader.Close();
102               }
103               catch (MySqlException ex)
104               {
105                   Console.Write(ex.ToString());
106
107               }
108               finally
109               {
110                   conn.Close();
111               }
112
113           }
114
115         }
116     }
117 }

时间: 2024-10-10 15:17:03

C#操作MYSQL数据库的相关文章

python操作mysql数据库

连接数据库 输入值 存入数据库 关闭 import string import mysql.connector conn=mysql.connector.connect(user='root',password='test',database='dalian',use_unicode=True) cursor=conn.cursor() a=raw_input('enter an id: ') b=raw_input('enter a name: ') while(a!='quit' or b!

Windows下安装MySQLdb, Python操作MySQL数据库的增删改查

这里的前提是windows上已经安装了MySQL数据库,且配置完毕,能正常建表能操作.在此基础上只需安装MySQL-python-1.2.4b4.win32-py2.7.exe就ok了,只有1M多.这个有点类似jdbc里的那个jar包. 下载链接:http://sourceforge.net/projects/mysql-python/ , 百度云盘 :http://pan.baidu.com/s/1dDgnfpR 密码:7bna 接着import MySQLdb就能使用了,下面给出测试代码:

使用python操作mysql数据库

这是我之前使用mysql时用到的一些库及开发的工具,这里记录下,也方便我查阅. python版本: 2.7.13 mysql版本: 5.5.36 几个python库 1.mysql-connector-python 是MySQL官方的Python驱动 https://dev.mysql.com/doc/connector-python/en/ 安装: pip install mysql-connector 示例代码: https://github.com/mike-zhang/pyExample

【php】php操作MySQL数据库

一.操作步骤: 1. 连接MySQL数据库并判断是否连接成功2. 选择数据库3. 设置字符集4. 准备SQL语句5. 向MySQL服务发送SQL语句6. 解析处理结果集7. 释放结果集,关闭数据库连接 二.常用操作: 1. mysqli_connect();--连接数据库,并返回一个连接资源 格式: mysql_connect(主机名,用户,密码); --其中参数可选,若不写则参考php.ini中默认配置 2. mysqli_error(); --获取刚刚(最后)执行数据库操作的错误信息 3.

python3操作MySQL数据库

安装PyMySQL 下载地址:https://pypi.python.org/pypi/PyMySQL 1.把操作Mysql数据库封装成类,数据库和表先建好 import pymysql.cursors # ======== Setting linked test databases =========== host = '192.168.17.123' user = 'root' password = '123456' db='polls' # ======== MySql base oper

c语言操作mysql数据库

c语言操作Mysql数据库,主要就是为了实现对数据库的增.删.改.查等操作,操作之前,得先连接数据库啊,而连接数据库主要有两种方法.一.使用mysql本身提供的API,在mysql的安装目录中可可以看到大量的头文件.lib文件.dll文件,这说明mysql原生就支持了c语言,操作起来相当简单.二.使用win32 api(这里只探讨windows平台),主要是ODBC. ODBC API 接口是(Open Database Connectivity)开放式数据库接口,它建立了一组规范,并提供了一组

PHP操作MySQL数据库的相关函数

首先,要分清SQL语句的类型: SQL语句的分类 (1)DDL:Data Define Language,数据定义语言--定义表的列结构 CREATE.DROP.ALTER.TRUNCATE (2)DML:Data Manipulate Language,数据操作语言--操作表的记录行 INSERT.DELETE.UPDATE (3)DQL:Data Query Language,数据查询语言--不影响表的行和列 SELECT (4)DCL:Data Control Language,数据控制语

本地通过Eclipse链接Hadoop操作Mysql数据库问题小结

前一段时间,在上一篇博文中描述了自己抽时间在构建的完全分布式Hadoop环境过程中遇到的一些问题以及构建成功后,通过Eclipse操作HDFS的时候遇到的一些问题,最近又想进一步学习学习Hadoop操作Mysql数据库的一些知识,在这里网上存在很多分歧,很多人可能会笑话,用那么“笨重”的Hadoop来操作数据库,脑子有问题吧,Hadoop的HDFS优势在于处理分布式文件系统,这种说法没有任何错误,数据库的操作讲究“安全.轻便.快捷”,用Hadoop操作完全是不符合常理啊,那为啥还要学习这个东西呢

mysqli扩展库操作mysql数据库

配置环境 配置php.ini文件让php支持mysqli扩展库 extension=php_mysqli.dll 建库建表 详见博客 “mysql扩展库操作mysql数据库” 查询数据库 1 <?php 2 //mysqli扩展库操作mysql数据库,面向对象 3 $mysqli=new MySQLi("localhost","root","root","test"); 4 if($mysqli->connect_

[PHP]PHP编程操作Mysql数据库的三种方式

当我开始去接触PHP的时候,真切的感受到其所具有的魅力,本着学习的态度和打破固有的语言和模式的想法,开始了PHP之旅,总的来说,走的还是比较顺利,在其中能够看到C,Java,Perl影子,学习曲线不大,但是做好产品仍然有着一条漫漫长路. 多余的话不说了,慢慢感受和领悟,本文主要讲述PHP操作数据库的三种扩展. 如下图是PHP访问数据库的三种扩展方式: 下面举出三种方式访问数据库并查询数据的实例代码: 1.mysql扩展 <?php //1:获取数据库连接 $connection = @ mysq