数据访问

对应命名空间:System.Data.SqlClient;

SqlConnection:连接对象

SqlCommand:命令对象

SqlDataReader:读取器对象

CommandText:命令文本

增删改、查分以下几步:

1、造连接字符串

string connstring = "server=.;database=mydb;user=sa;pwd=123";

          connstring:造的字符串名

          server指服务器一般是IP地址本机可以使用点;           

                             database指数据库名称要访问的数据库名称           

                             user数据库的用户名:一般是sa           

                             pwd数据库的密码:自己设置的

2、造连接对象

SqlConnection conn = new SqlConnection(connstring);

          conn:造的连接对象名

3、创建命令对象

SqlCommand cmd = conn.CreateCommand();

          cmd:造的命令对象名

4、写要执行的SQL语句

     4-1:查询

  cmd.CommandText = "select * from Info";

  //4-2:添加

  cmd.CommandText = "Insert into Info values('p032','毒哥','True','n001','1987-02-02')";

  //4-3:删除

  cmd.CommandText = "delete from Info where Code='p032';

  //4-4:更改

   cmd.CommandText = "update Info set name='情方方' where Code='p032';

5、打开连接

conn.Open();  //可放在执行之前的任意位置

6、执行操作

     5-1:(读取操作,返回读取器对象)

  SqlDataReader dr = cmd.ExecuteReader();

  //5-2.执行操作(增删改操作,返回行数)   

cmd.ExecuteNonQuery();

7、处理数据

     6-1:查询一条数据

  if (dr.HasRows)      //HasRows 判断是否有行数据 bool型,返回true/false   

{     

dr.Read();  //dr.Read() 是数据库数据访问指针,每执行一次都会向下走一行,如果有内容则返回true,同时dr访问为当前行数据集合,可以使用索引或是列名来访问相对应的数据

    Console.WriteLine(dr[0]);     

Console.ReadLine();   

}   

else   

{     

Console.WriteLine("读取失败!");   

}

      //6-2.查询多条数据

  if (dr.HasRows)   

{     

while(dr.Read())  //使用while循环读取所有数据  一行数据是一个数组,一行数据里有多少列就有多少个索引                   

{     

Console.WriteLine(dr[0]+"----"+dr[1]);   

}

         Console.ReadLine();   

}   

else   

{     

Console.WriteLine("没有读到数据");     

Console.ReadLine();   

}

8、关闭连接

conn.Close();

例1:根据用户输入一个条件查询数据

static void Main1(string[] args)
{
//用户输入内容
Console.WriteLine("请输入要查询的名称:");
string str = Console.ReadLine(); //造连接字符串
string connstring = "server=.;database=mydb;user=sa;pwd=123"; //造连接对象
SqlConnection conn = new SqlConnection(connstring); //造命令对象
SqlCommand cmd = conn.CreateCommand(); //准备一条SQL语句
cmd.CommandText = "select * from Info where Name like '%"+str+"%'"; //打开连接
conn.Open(); //执行SQL语句
SqlDataReader dr = cmd.ExecuteReader(); //读取数据
if (dr.HasRows)
{
while (dr.Read())
{
int n = ;
while ( n <dr.FieldCount ) //.FieldCount获取当前行的列数
{
Console.Write(dr[n]+"\t");
n++;
}
Console.WriteLine();
}
}
else
{
Console.WriteLine("没有查到满足条件的数据");
} //关闭连接
conn.Close(); Console.ReadLine(); }

例2:让用户输入要删除的数据主键值(此方法不安全)

static void Main4(string[] args)
{
//用户输入要删除的数据主键值
Console.WriteLine("请输入要删除的代号:");
string code = Console.ReadLine(); //判断该数据存不存在
SqlConnection conn = new SqlConnection("server=.;database=mydb;user=sa;pwd=123");
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "select * from Info where Code='"+code+"'";
conn.Open();
SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows)
{
//说明该数据存在
Console.WriteLine("查到该数据,是否要执行删除操作,如果要删除请输入:1");
int sc = Convert.ToInt32(Console.ReadLine()); if (sc == )
{
//删除
dr.Close(); //关闭读取器 cmd.CommandText = "delete from Info where Code='"+code+"'";
cmd.ExecuteNonQuery();
Console.WriteLine("删除成功!"); }
else
{
//不删除
dr.Read(); string sex = Convert.ToBoolean(dr[])?"男":"女";
string nation = MinZu(dr[].ToString()); string str = "代号:"+dr[]+"\t姓名:"+dr[]+"\t性别:"+sex+"\t民族:"+nation+"\t生日:"+dr[]; Console.WriteLine(str); }
}
else
{
//数据不存在
Console.WriteLine("输入的代号错误!");
} conn.Close();
Console.ReadLine();
} static string MinZu(string code)
{
string name="";
SqlConnection conn = new SqlConnection("server=.;database=mydb;user=sa;pwd=123");
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "select Name from Nation where Code = '" + code + "'";
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
dr.Read();
name = dr[].ToString();
}
conn.Close(); return name;
}

例:让用户输入要添加的内容

static void Main3(string[] args)
{
//让用户输入要添加的内容
Console.WriteLine("请输入要添加的代号:");
string code = Console.ReadLine(); Console.WriteLine("请输入姓名:");
string name = Console.ReadLine(); Console.WriteLine("请输入性别:");
bool sex = Console.ReadLine()=="男"?true:false; Console.WriteLine("请输入民族:");
string nation = Console.ReadLine(); Console.WriteLine("请输入生日:");
string birthday = Console.ReadLine(); string nationcode = "n001"; //将民族名称转为名族代号
SqlConnection conn = new SqlConnection("server=.;database=mydb;user=sa;pwd=123");
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "select Code from Nation where Name = '"+nation+"'";
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
dr.Read();
nationcode = dr[].ToString();
}
conn.Close(); //往Info表添加数据
cmd.CommandText = "insert into Info values('"+code+"','"+name+"','"+sex+"','"+nationcode+"','"+birthday+"')";
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
Console.WriteLine("添加成功!"); Console.ReadLine();
}

ADO.Net(一)——增、删、改、查的更多相关文章

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

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

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

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

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

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

  4. 第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据

    第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据 ADO.NET 为什么要学习? 我们要搭建一个平台(Web/Winform ...

  5. django ajax增 删 改 查

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

  6. ADO.NET 增 删 改 查

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

  7. MVC EF 增 删 改 查

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

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

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

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

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

  10. MongoDB增 删 改 查

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

随机推荐

  1. C#编程总结(二)多线程基础

    C#编程总结(二)多线程基础 无论您是为具有单个处理器的计算机还是为具有多个处理器的计算机进行开发,您都希望应用程序为用户提供最好的响应性能,即使应用程序当前正在完成其他工作.要使应用程序能够快速响应 ...

  2. iOS阶段学习第14天笔记(NSString与NSMutableString)

    iOS学习(OC语言)知识点整理 一.OC字符串的操作 1)OC中字符串分为两种: 1.不可变字符串NSString:不能修改对象内容,但是可以改变对象的指针. 2.可变字符串NSMutableStr ...

  3. mvc 修改 删除 linq

    Models文件夹里面可以Linq,Entity两种映射框架,也允许有ADO的操作,甚至可以ADO代码和映射代码一起操作 控制器当中允许有相同的方法名,类似在做修改时有两个Modify方法,但是MVC ...

  4. Google Go Programming In Eclipse

    http://www.tutorialsavvy.com/2013/04/google-go-programming-in-eclipse.html/ Google Go Programming In ...

  5. 口袋微博android源码服务端和客户端

    刚刚在源码天堂看到了一个不错的安卓SNS应用源码,而且也比较完整的,它基本具备了新浪微博的所有功能,包括查看最新的微博.微博评论.好友资料.回复评论以及发私信等,除此之外,还提供了许多独有的特色功能: ...

  6. 优化JavaScripe 提升首页加载速度的几种方案解析

    优化目的: 1. 减少load量. 2. 优化js,加快页面加载速度. 网站中最影响网站打开速度的是什么?我会告诉是网站中的javascript,简称JS.模板中引用的JS文件越多,打开速度越慢,细读 ...

  7. virtualenvwrapper安装使用

    安装 linux和mac下安装 pip install virutalenv virtualenvwrapper windows下安装 pip install virtualenvwrapper-wi ...

  8. contentResolver

    今天练习一个联系人的增,写,改,查的几项操作,其中一个重要的知识点  ContentResolver 还有一篇不错的参考文献 主要参见下面这个链接  http://cthhqu.blog.51cto. ...

  9. 关于linux下DB2创建数据库报错问题

    公司业务需要,把服务搭在中标下,在中标下装了DB2 Express-C v9.7.1,之前用着没有问题,隔了一段时间没用,最近又需要用到它,出了一些菜鸟问题,记录下来以免有人和我犯同样的错误...进入 ...

  10. java 编译时的初始化顺序

    有的时候,java的初始化会对我的工作照成很大影响,所以简单介绍一下, 首先介绍简单的变量的初始化:在类的内部,变量定义的先后顺序决定了初始化的顺序,即使变量定义散布于方法定义之间,它也会先于构造器和 ...