【2017-04-18】Ado.Net C#连接数据库进行增、删、改、查
一、简介
1、ado.net是一门数据库访问技术。
他可以通过程序来操作数据库
2、类库
Connection 类
Command对象
DataReader类
DataSet对象
DataAdapter类
DataTable类
//连接字符串。服务器:本地;数据库:Data0216;用户:sa;密码:123
string sql = "server=.;database=Data0216;user=sa;pwd=123;";
//数据库连接类
SqlConnection conn = new SqlConnection(sql);
//数据库操作类
SqlCommand cmd = conn.CreateCommand();
//编写Tsql语句
cmd.CommandText = "insert into Users values('tianqi','1234','田七','1','2003-2-1','N003')";
//打开数据库
conn.Open();
//执行操作
cmd.ExecuteNonQuery();
//关闭数据库
conn.Close();
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient; namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//连接字符串。服务器:本地;数据库:Data0216;用户:sa;密码:123
string sql = "server=.;database=Data0216;user=sa;pwd=123;";
//数据库连接类
SqlConnection conn = new SqlConnection(sql);
//数据库操作类
SqlCommand cmd = conn.CreateCommand();
//编写Tsql语句
cmd.CommandText = "select *from Users";
//打开数据库
conn.Open();
//执行操作用SqlDataReader类dr接收一下
SqlDataReader dr = cmd.ExecuteReader(); int count = ;
//判断查询结果是否有行(是否有数据)
if (dr.HasRows)
{
//dr.Read();读取下一行数据,如果有返还true,如果没有返回false。用一个死循环来打印数据,如果读取不到下一行的数据则循环结束。
while (dr.Read())
{
count++;
//将读取到该行数据的Ids列提取出来放到字符串ids中
string ids = dr["Ids"].ToString();
string username = dr["UserName"].ToString();
string password = dr["PassWord"].ToString();
string nickname = dr["NickName"].ToString();
string sex = dr["Sex"].ToString();
string birthday = dr["Birthday"].ToString();
string nation = dr["Nation"].ToString();
Console.WriteLine(ids + " | " + username + " | " + password + " | " + nickname + " | " + sex + " | " + birthday + " | " + nation);
}
}
Console.WriteLine("一共有" + count + "行数据");
//关闭数据库
conn.Close();
Console.ReadLine();
}
}
}
四、完整的数据删除,将数据删除成功与否返回给用户
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(); cmd.CommandText = "delete from Users where UserName='zhangsan';"; conn.Open();
//执行操作,将受影响行数返回一个int类型接受一下
int a = cmd.ExecuteNonQuery();
//如果受影响行数大于0,则删除成功,否则删除失败
if (a > ) Console.WriteLine("删除成功,本次共删除" + a + "行");
else Console.WriteLine("删除失败,本次未删除任何数据!"); conn.Close();
Console.ReadLine(); }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient; 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();
//如果数据库中有用户要修改的这条数据,给has一个true值
if (dr.HasRows)
{
has = true;
} conn.Close();
//如果数据库中有用户要删除的这条数据,再提示用户要修改的内容
if (has == true)
{
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(); //修改数据的sql语句
cmd.CommandText = "update Users set PassWord='"+password+"',NickName='"+nickname+"',Sex='"+sex+"',Birthday='"+birthday+"',Nation='"+nation+"' where UserName='"+name+"'";
//再次打开数据库
conn.Open();
//用aaa记一下受影响行数
int aaa= cmd.ExecuteNonQuery();
//关闭数据库
conn.Close(); if (aaa > ) Console.WriteLine("修改成功");
else Console.WriteLine("修改失败");
}
//如果查询不到用户要修改的数据,提示用户无法修改。
else
Console.WriteLine("未查到此用户,无法修改"); Console.ReadLine();
}
}
}
六、完整的数据添加
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient; namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
string name = "";
string password = "";
string nickname = "";
string sex = "";
string birthday = "";
string nationcode = ""; string sql = "server=.;database=Data0216;user=sa;pwd=123;";
SqlConnection conn = new SqlConnection(sql);
SqlCommand cmd = conn.CreateCommand(); //判断用户名是否被占用且不能为空,如果未被占用且不为空将用户输入的用户名放在name中,跳出循环
while (true)
{
Console.Write("请输入用户名:");
name = Console.ReadLine(); cmd.CommandText = "select *from Users where UserName='" + name + "'";
conn.Open();
SqlDataReader dr = cmd.ExecuteReader(); if (!dr.Read() && name.Length != )
{
conn.Close();
break;
}
} //判断密码是否大于6位
while (true)
{
Console.Write("请输入密码:");
password = Console.ReadLine();
if (password.Length >= )
{
break;
}
}
//判断昵称是否为空
while (true)
{
Console.Write("请输入昵称:");
nickname = Console.ReadLine();
if (nickname.Length > )
{
break;
}
}
//判断性别输入,输入男将1记录到数据库中,输入女将0记录到数据库中
while (true)
{
Console.Write("请输入性别(男/女):");
sex = Console.ReadLine();
if (sex == "男" || sex == "女")
{
if (sex == "男")
sex = "";
else sex = "";
break;
}
else
Console.WriteLine("输入的格式不正确,请重新输入");
} //判断输入的生日格式是否正确
while (true)
{
Console.Write("请输入生日:");
birthday = Console.ReadLine(); try
{
Convert.ToDateTime(birthday);
break;
}
catch
{
Console.WriteLine("输入的格式不正确,请重新输入");
}
} //判断输入的民族在该数据库中是否有此记录
while (true)
{
Console.Write("请输入民族:");
string nation = Console.ReadLine();
//从民族表中查询用户输入的民族对应的民族编号
cmd.CommandText = "select NationCode from UserNation where NationName='" + nation + "'";
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
//如果查询到该记录,则把民族编号提取出来,关闭数据库并跳出循环
if (dr.Read())
{
nationcode = dr["NationCode"].ToString();
conn.Close();
break;
}
//如果查询不到该记录,提示一下用户,关闭数据库,继续循环。
else
{
conn.Close();
Console.WriteLine("记录暂无此民族,请输入其他民族");
}
} //添加数据的sql语句
cmd.CommandText = "insert into Users values('" + name + "','" + password + "','" + nickname + "','" + sex + "','" + birthday + "','" + nationcode + "')";
conn.Open();
int a = cmd.ExecuteNonQuery();
if (a == ) Console.WriteLine("数据已经添加进去");
else Console.WriteLine("该条数据未添加进去!");
conn.Close(); Console.ReadLine();
}
}
}
【2017-04-18】Ado.Net C#连接数据库进行增、删、改、查的更多相关文章
- ADO.NET 增 删 改 查
ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...
- 第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据
第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据 ADO.NET 为什么要学习? 我们要搭建一个平台(Web/Winform ...
- C# ADO.NET (sql语句连接方式)(增,删,改)
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- .Net连接数据库-曾,删,改,查(AOD.Net)
连接数据库 static void Main(string[] args) { //SqlConnection conn = new SqlConnection();//实例化 //conn.Conn ...
- 九月 26, 2017 10:18:14 上午 com.sun.jersey.server.impl.application.RootResourceUriRules <init> 严重: The ResourceConfig instance does not contain any root resource classes.
Tomcat启动错误:九月 26, 2017 10:18:14 上午 com.sun.jersey.server.impl.application.RootResourceUriRules <i ...
- C#通过Ado.net对连接数据库并进行添加删除等常规操作的代码
如下资料是关于C#通过Ado.net对连接数据库并进行添加删除等常规操作的内容. static string sqlcon = "server=.;database=;Integrated ...
- Wed Jul 04 18:01:38 CST 2018 WARN: Establishing SSL connection without server's identity verification is not recommended
Wed Jul 04 18:01:38 CST 2018 WARN: Establishing SSL connection without server's identity verificatio ...
- http://www.liangxiansen.cn/2017/04/06/consul/
Consul 使用手册 | 一个梦 http://www.liangxiansen.cn/2017/04/06/consul/ 基于Consul的分布式锁实现 https://mp.weixin.qq ...
- 日本IT行业劳动力缺口达22万 在日中国留学生迎来就业好时机 2017/07/18 11:25:09
作者:倪亚敏 来源:日本新华侨报 发布时间:2017/07/18 11:25:09 据日本政府提供的数据,日本2018年应届毕业生的“求人倍率”已经达到了1.78倍.换言之,就是100名大学生 ...
随机推荐
- node环境安装(mac版和windows版)
WINDOWS版本安装 nvm 是 Mac 下的 node 管理工具,有点类似管理 Ruby 的 rvm,如果是需要管理 Windows 下的 node,官方推荐是使用 nvmw 或 nvm-wind ...
- 清空file文件域的方法
我们在实际应用中经常希望能把文件域给清空,比如使用change事件时,因为不清空再次选择同一文件时将不在触发change事件. 但是在IE中,由于安全设置的原因,是不允许更改文件域的值的,也就是不能使 ...
- 如何更新 OpenStack 组件?- 每天5分钟玩转 OpenStack(161)
这是 OpenStack 实施经验分享系列的第 11 篇. 本节教大家更新 OpenStack 组件的方法.请注意,是更新(Update)而不是升级(Upgrade).更新是给组件打补丁,版本不变:而 ...
- CoreAnimation 核心动画
- (void)createBaseAnimation{ //基础动画 CABasicAnimation *animation = [CABasicAnimation animation]; anim ...
- (16)IO流之输入字节流FileInputStream和输出字节流FielOutputStream
IO流技术解决的问题:设备与设备之间的传输问题,内存-->硬盘,硬盘-->内存,等等 IO流技术 如果按照数据的流向划分可以划分为:输入流和输出流 输入输出的标准是以程序为参考物的,如果流 ...
- (10)集合之双列集合Map,HashMap,TreeMap
Map中的元素是两个对象,一个对象作为键,一个对象作为值.键不可以重复,但是值可以重复. 看顶层共性方法找子类特有对象. Map与Collection在集合框架中属并列存在 Map存储的是键值对 Ma ...
- Android 5.0(棒棒糖))十大新特性
Android 5.0(棒棒糖))十大新特性 1. 全新Material Design设计风格 Android Lollipop全新的设计语言是受到了多种因素影响,是一种大胆的平面化创新.换句话说,谷 ...
- 单发邮箱 群发邮箱 程序 Email winform
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- 实验楼-1-Hello world!
初识实验楼,决定在上面好好的练练手. Course 1 : print "Hello world" 在虚拟机桌面,打开终端Xfce,通过运行linux指令,新建c文件,进行编辑,编 ...
- 腾讯云报告——MySQL成勒索新目标,数据服务基线安全问题迫在眉睫
推荐理由 大数据时代,人类产生的数据越来越多,但数据越多的情况下,也会带来数据的安全性问题,如MySQL数据库上的数据,越来越多的黑客盯上了它,今天推荐的这篇文章来自于腾讯云技术社区,主要是针对MyS ...