一、C# 对数据库的操作步骤

1、引入命名空间

 Using System.Data.SqlClient     

2、设置连接字符串

string sql = “ server = . ; database = Data0216 ; user=sa ; pwd =   ";

//sql 设的字符串名
//server 指服务器:一般是IP地址,本机可以使用点;
//database 指数据库名称:要访问的数据库名称           
//user 数据库的用户名:一般是sa           
//pwd 数据库的密码:自己设置的

3、建立数据库连接对象

SqlConnection conn = new  SqlConnection(sql);

//SqlConnection 连接对象类

4、创建命令对象

SqlCommand cmd = conn.CreateCommand();

//SqlCommand 命令对象类

5、给命令对象写要执行的SQL语句

//查询
cmd.CommandText = "select * from Info";
//添加
cmd.CommandText = "Insert into Info values('p032','张三','True','n001','1987-02-02')";
//删除
cmd.CommandText = "delete from Info where Code='p032';
// 更改
cmd.CommandText = "update Info set name='李四' where Code='p032'; //CommandText 命令文本

6、打开连接

 conn.Open(); 

7、执行操作,处理数据

(1)查询操作

SqlDataReader  dr  =  cmd.ExecuteReader();  //dr 代表返回的是一个结果集 SqlDataReader 读取器对象类
if (dr.HasRows)                 //HasRows 判断是否有行数据 bool型,返回true/false  
{     
while(dr.Read())            // dr.Read() 数据库数据访问指针,每执行一次向下走一行,有内容则返回true,没有返回 false
{                    // dr访问为当前行数据集合,可以使用索引或是列名来访问相对应的数据
string ids = dr[].ToString();
string username = dr[].ToString();
string birthday = dr["Birthday"].ToString();
string password = dr["PassWord"].ToString();
                       //使用while循环读取所有数据,当dr.Read(); 返回值是 false 时跳出循环
}
}   
else   
{     
Console.WriteLine("读取失败!");   
}

(2)增、删、改操作

int   a  =  cmd.ExecuteNonQuery();   //a 返回的是 int 类型,表示几行受影响
if ( a > )
{     
Console.WriteLine("成功");   
}
else   
{     
Console.WriteLine("读失败!");   
}

8、关闭连接 

conn.Close();

注意事项:

每次打开数据库只能执行,增、删、改、查。中的一个

注意在有循环运行的时候,尽量避免有频繁的开关数据库,可将开关放到循环外

使用  break; 跳出循环时,注意跳出后的位置与 conn.Close(); 的关系 。容易出现不经过conn.Close();,没有关上库。

二、对数据库操作的实例

  1、查询一个表的所有数据

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient; namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
//连接字符串
string sql = "server=.;database=Data0216;user=sa;pwd=123"; //创建据库连接
SqlConnection conn = new SqlConnection(sql); //创建命令对象
SqlCommand cmd = conn.CreateCommand(); //执行的SQL语句
cmd.CommandText = "select *from Users"; 打开连接
conn.Open(); //执行操作,数据处理
SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows)
{
while (dr.Read())
{
string ids = dr[].ToString();
string username = dr[].ToString();
string birthday = dr["Birthday"].ToString();
string password = dr["PassWord"].ToString();
string nickname = dr["NickName"].ToString();
string sex = dr["Sex"].ToString();
string nation = dr["Nation"].ToString(); Console.WriteLine(ids + " | " + username + " | " + password + " | " + nickname + " | " + sex + " | " + birthday + " | " + nation);
}
} //关闭连接
conn.Close(); Console.ReadKey();
}
}
}

2、删除数据

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text; namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string sql = "server=.;database=Data0216;user=sa;pwd=123"; SqlConnection conn = new SqlConnection(sql); SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = "delete from users where username='zhangsan'"; conn.Open(); int a = cmd.ExecuteNonQuery(); if (a > )
{
Console.WriteLine("删除成功,本次共删除" + a + "行");
} else
{
Console.WriteLine("删除失败,本次未删除任何数据");
} conn.Close(); Console.ReadLine();
}
}
}

 3、修改数据

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text; namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
bool has = false; string sql = "server=.;database=Data0216;user=sa;pwd=123"; SqlConnection conn = new SqlConnection(sql); SqlCommand cmd = conn.CreateCommand(); Console.Write("请输入要修改的用户的用户名:");
string name = Console.ReadLine(); cmd.CommandText = "select *from Users where UserName = '" + name + "'"; conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows)
{
has = true;
}
conn.Close(); if (!has)
Console.WriteLine("用户名输入错误!查无此用户");
else
{
Console.WriteLine("已查询到此用户,请输入更改的信息");
Console.Write("请输入修改后的密码:");
string password = Console.ReadLine();
Console.Write("请输入修改后的昵称:");
string nickname = Console.ReadLine();
Console.Write("请输入修改后的性别:");
string sex = Console.ReadLine();
Console.Write("请输入修改后的生日:");
string birthday = Console.ReadLine();
Console.Write("请输入修改后的民族:");
string nation = Console.ReadLine(); cmd.CommandText = "update Users set PassWord='" + password + "',NickName='" + nickname + "',Sex='" + sex + "',Birthday='" + birthday + "',Nation='" + nation + "' where UserName = '" + name + "'"; conn.Open(); int aaa = cmd.ExecuteNonQuery(); conn.Close(); if (aaa > )
{
Console.WriteLine("修改成功");
}
else
{
Console.WriteLine("修改失败");
}
} Console.ReadLine(); }
}
}

 4、有条件的添加数据

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text; namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{ //编写一个完整的,带限制的添加功能 string sql = "server=.;database=Data0216_5;user=sa;pwd=123"; SqlConnection conn = new SqlConnection(sql); SqlCommand cmd = conn.CreateCommand(); #region 添加该用户名 string name; while (true)
{
Console.Write("请输入用户名");
name = Console.ReadLine();
//不能为空,不能重复 if (name.Length == )
{
Console.WriteLine("输入错误!用户名不能为空");
}
else
{
cmd.CommandText = " select Username from users where Username='" + name + "'"; conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows)
{
Console.WriteLine("输入错误!该用户已存在");
}
else
{
break;
} } } conn.Close();
#endregion #region 添加密码 string password;
while (true)
{
Console.Write("请输入密码(6位以上数字字母):");
password = Console.ReadLine();
//不能小于6位 if (password.Length < )
{
Console.WriteLine("输入有误!密码不能小于6位数");
}
else
{
break;
}
} #endregion #region 添加昵称 string nickname;
while (true)
{
Console.Write("请输入昵称:");
nickname = Console.ReadLine();
//不能为空 if (nickname.Length == )
{
Console.WriteLine("昵称不能为空");
}
else
{
break;
} }
#endregion #region 添加性别 string sex;
while (true)
{
Console.Write("请输入性别(男/女):");
sex = Console.ReadLine();
//让用户输入 男 女 if (sex == "男")
{
sex = "true";
break;
}
else if (sex == "女")
{
sex = "false ";
break;
}
else {
Console.WriteLine("输入有误!性别只有<男/女>");
}
}
#endregion #region 添加生日 string birthday;
while (true)
{
Console.Write("请输入生日:");
birthday = Console.ReadLine();
//日期格式是否正确
try
{
DateTime dt = new DateTime();
dt = Convert.ToDateTime(birthday);
break;
}
catch
{
Console.WriteLine("日期格式不正确");
}
} #endregion #region 添加名族 string nation; while (true)
{
Console.Write("请输入民族:");
nation = Console.ReadLine();
//有无此民族 cmd.CommandText = "select NationCode from usernation where NationName like '" + nation + "%'; "; conn.Open(); SqlDataReader der = cmd.ExecuteReader();
if (der.HasRows)
{
der.Read();
nation = der["NationCode"].ToString();
break;
}
else
{
Console.WriteLine("暂无此民族");
} }
conn.Close(); #endregion #region 执行添加程序 cmd.CommandText = "insert into users values('" + name + "','" + password + "','" + nickname + "','" + sex + "','" + birthday + "','" + nation + "')";
conn.Open(); int a = cmd.ExecuteNonQuery();
if (a > )
{
Console.WriteLine("添加成功!");
}
else
{
Console.WriteLine("添加失败!!");
} conn.Close(); #endregion Console.ReadLine(); }
}
}

ADO.NET 【增】【删】【改】【查】的更多相关文章

  1. ADO.NET 增 删 改 查

    ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...

  2. 好用的SQL TVP~~独家赠送[增-删-改-查]的例子

    以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化.  本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...

  3. iOS FMDB的使用(增,删,改,查,sqlite存取图片)

    iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...

  4. iOS sqlite3 的基本使用(增 删 改 查)

    iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...

  5. django ajax增 删 改 查

    具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...

  6. MVC EF 增 删 改 查

    using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...

  7. python基础中的四大天王-增-删-改-查

    列表-list-[] 输入内存储存容器 发生改变通常直接变化,让我们看看下面列子 增---默认在最后添加 #append()--括号中可以是数字,可以是字符串,可以是元祖,可以是集合,可以是字典 #l ...

  8. 简单的php数据库操作类代码(增,删,改,查)

    这几天准备重新学习,梳理一下知识体系,同时按照功能模块划分做一些东西.所以.mysql的操作成为第一个要点.我写了一个简单的mysql操作类,实现数据的简单的增删改查功能. 数据库操纵基本流程为: 1 ...

  9. MongoDB增 删 改 查

    增 增加单篇文档 > db.stu.insert({sn:'001', name:'lisi'}) WriteResult({ "nInserted" : 1 }) > ...

  10. Go语言之进阶篇mysql增 删 改 查

    一.mysql操作基本语法 1.创建名称nulige的数据库 CREATE DATABASE nulige DEFAULT CHARSET utf8 COLLATE utf8_general_ci; ...

随机推荐

  1. NODE-WEBKIT教程(6)NATIVE UI API 之MENU(菜单)

    node-webkit教程(6)Native UI API 之Menu(菜单) 文/玄魂 目录 node-webkit教程(6)Native UI API 之Menu(菜单) 前言 6.1  Menu ...

  2. 实验4 IIC通讯与EEPROM接口

    1.       用C语言编程,利用定时器产生一个0~99秒变化的秒表,并且显示在数码管上,每过一秒将这个变化写入实验板上AT24C02,当关闭实验板电源,并再次打开实验板电源时,单片机从AT24C0 ...

  3. C# 动态创建数据库三(MySQL)

    前面有说明使用EF动态新建数据库与表,数据库使用的是SQL SERVER2008的,在使用MYSQL的时候还是有所不同 一.添加 EntityFramework.dll ,System.Data.En ...

  4. HttpInvokerUtils

    package com.sprucetec.tms.utils; import org.slf4j.Logger;import org.slf4j.LoggerFactory; import java ...

  5. GoLang学习控制语句之字符串

    Go语言字符串是一种值类型,且值不可变,即创建某个文本后你无法再次修改这个文本的内容:更深入地讲,字符串是字节的定长数组.Go 代码使用 UTF-8 编码(且不能带 BOM),同时标识符支持 Unic ...

  6. GoLang学习控制语句之if/else

    if语句 if 是用于测试某个条件(布尔型或逻辑型)的语句,如果该条件成立,则会执行 if 后由大括号括起来的代码块,否则就忽略该代码块继续执行后续的代码. if condition { // do ...

  7. [Swift]lower_bound和upper_bound

    时间复杂度:一次查询O(log n),n为数组长度. [C++] lower_bound:返回大于等于val的第一个值 功能:查找非递减序列[first,last) 内第一个大于或等于某个元素的位置. ...

  8. 设计模式《JAVA与模式》之调停者模式

    在阎宏博士的<JAVA与模式>一书中开头是这样描述调停者(Mediator)模式的: 调停者模式是对象的行为模式.调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显引用.从 ...

  9. 设置Jmeter默认为中文, 就是这么简单!

    Jmeter默认加载的全英文,想要看的更加明白,想到的就是汉化了. Jmeter汉化真的非常简单,意料之外的简单,只需要到配置文件 jmeter.properties ,将里面的 “#language ...

  10. vue2打包时内存溢出解决方案

    vue项目完成时,若项目过大,就会出现内存溢出的问题,导致vue打包不成功 错误截图 解决方案 在依赖package.json中修改build为 "build":"nod ...