C#网络编程自学笔记——操作Mysql数据库

通过C#连接到mysql数据库

在c#中,对mysql的操作需要引入命名空间

using System.Data;
using System.Data.SqlClient;

想要登录到响应数据库,我们需要创建一个字符串,用来设置登录信息。

string connStr = @"server=.;database=****;uid=sa;pwd=****";

在这个登陆字符串中,需要填入四个内容,第一个server表示服务器的位置,如果填写server=. 则表示数据库在本地(local),也可以直接填写server=local,二者等效,如果需要访问的数据库是远程数据库,则这个地方需要填写远程数据库所在的ip地址以及相关的端口号;
第二个参数是database=****,其中的*号需要替换成你所要访问的数据库名称;
第三个参数uid=sa,表示用户名是sa——系统管理员;
第四个参数是pwd=****,表示用户名所对应的密码。
在设置完登陆字符串之后,我们就需要创建数据库连接对象。

SqlConnection conn = new SqlConnection();

这里我们就创建了一个数据库连接对象,如果我们想要连接对应我们刚刚创建的登陆字符串的数据库,需要实现下面的代码:

conn.ConnectionString = connStr;
conn.Open();

运行代码,如果程序没有抛出异常,则表示已经成功连接到对应的数据库;如果在登陆字符串中输入了不正确的信息(例如用户名不存在、数据库名不存在或者是密码错误等),则程序都会抛出异常。
如果我们需要暂时断开与数据库的连接,我们可以使用如下两种手段:

conn.Close();  // 暂时断开与数据库的连接,如果想要重新连接可以调用conn.Open()方法
conn.Dispose();  // 释放与数据库的连接,无法直接通过调用conn.Open()方法恢复连接,只能重新设置登录字符串。

向数据库中插入数据

插入数据依然使用命令字符串来完成操作,其格式如下:

string sql = "insert into UserInfos (UserName, UserPwd) values ('aaa', '111')";

SqlCommand cmd = new SqlCommand(sql, conn);  // 使conn的连接对象执行sql命令

conn.Open();  // 打开连接

int count = cmd.ExecuteNonQuery();  // 执行语句,返回值是数据库操作影响到的行数

从数据库中删除数据

所有的操作都和前面的插入数据类似,差别仅在于命令字符串:

string delsql = "delete from UserInfos where UserName='aaa'";

更新数据库中的数据

string updatesql = "update UserInfos set UserPwd='222' where UserName='aaa'";

查询数据

我们使用ExecuteScalar方法来进行查询,该方法返回查询结果中的第一行第一列的值,忽略其他行或列的值。

object o = null;
string sql =  "select * from UserInfoData";
SqlCommand cmd = new SqlCommand(sql, conn);
o = cmd.ExecuteScalar();
Console.WriteLine(o.ToString());

值得注意的是这种方法只能返回查询结果第一行第一列的值,应用场合一般在查询表有多少行,或者满足条件的有多少之类的只有一个返回值的场合,例如查询所有行数:

select count(1) from UserInfoData

还可以用在一种特殊的情况下,例如想要向数据表中插入一个新的实体,插入完毕之后需要返回这个实体的主键,此时可以将命令字符串设置为:

insert into UserInfoData (UserName) values ('ccc');select @@identity

读取小批量数据

使用ExecuteReader()方法来读取小批量的数据

reader = cmd.ExecuteReader();

该方法返回一个SqlDataReader对象,这是一个用来一条一条读取搜索结果的对象,通过调用reader.Read()方法来读取一条检索结果,如果检索结果为空,则该方法返回false,如果检索结果不为空,则返回true。通过这一特点,可以判断是否检索到结果。

reader.Read();

如果想要读取检索结果的内容,则通过以下方式:

reader["UserName"].ToString();

调用方式与字典类似,使用上面的语句可以得到检索结果中第一行的UserName列的值。如果想要得到下一行的值,则需要再次调用reader.Read()方法。也就是说,这个reader对象每次只存储了一行的检索信息,使用这种方法进行检索时,只能向下一条遍历,而不能回到上一条结果,每次调用Read()方法的时候都会向下一条检索。当检索到最后一条记录的时候,该方法返回false。
特别地,读取过程需要始终保持程序连接数据库处于open状态。读取完数据之后,需要使用reader.close()方法关闭。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容

  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,039评论 0 3
  • MySQL数据库对象与应用 2.1-MySQL数据类型 库建立好之后基本不动,和我们接触最频繁的是表. 建表就是声...
    极客圈阅读 2,123评论 0 8
  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 5,422评论 0 4
  • 今天的计划是30km,昨晚早早睡了,6点准时醒,6点半下楼后发现忘记带手表又回家找,找了快半小时顺便躲过一场及时雨...
    我是一路小跑阅读 604评论 0 1
  • 在你我的生命里,有来来往往无数的过路人。别人是你的过客,你也是别人的过客。我们匆匆忙忙,每一天都在擦肩。 有缘者,...
    简书_花儿多多开阅读 302评论 1 3