连接数据库--小练

数据访问:——ADO.NET

1.创建链接
2.创建与执行命令——SQL
3.读取或准备相关数据

一、命名空间:
using System.Data;
using System.Data.SqlClient;

二、链接类 - SqlConnection——创建与数据库的链接
(一)链接字符串: 连哪台电脑,连电脑上的哪个数据库,用户名是什么,密码
server=目标服务器的IP地址;database=数据库名;uid=数据库的登录名;pwd=数据库的登录密码
server=.;database=mydb;uid=sa;pwd=123
(二)实例化——构造
string aaa="链接字符串";
SqlConnection conn = new SqlConnection(aaa);

SqlConnection conn = new SqlConnection(链接字符串);

string aaa="链接字符串";
SqlConnection conn = new SqlConnection();
conn.ConnectionString=aaa;
(三)属性
ConnectionString:(string)指定与获取链接字符串。
State:用来描述链接当前的状态。Closed-链接处于关闭状态。Open-链接处于打开状态。
(四)方法
Open():打开链接
Close():关闭链接。
(五)案例
1.定义链接字符串。
string connectionString = "server=.;database=mydb;uid=sa;pwd=123";
2.构造链接对象
SqlConnection conn = new SqlConnection(connectionString);

SqlConnection conn = new SqlConnection();
conn.ConnectionString = connectionString;
3.打开链接
conn.Open();
4.关闭链接
conn.Close();

三、命令类——SqlCommand——向数据传递SQL语句或存储过程,并执行。
(一)构造:
SqlCommand cmd = new SqlCommand();
SqlCommand cmd = conn.CreateCommand();
(二)属性:
Connection:(SqlConnection)指定通过哪个链接对象来操作数据库
CommandText:(string)要执行的SQL语句或存储过程名.
(三)方法:
ExecuteNonQuery()——执行命令,返回影响行数。一般用来执行增删改的语句。
ExecuteReader() ——执行命令,返回一个读取器对象。一般用来执行查询语句。
(四)案例:
            string connectionString = "server=.;database=mydb;uid=sa;pwd=123";
            SqlConnection conn = new SqlConnection(connectionString);
            conn.Open();

//操作数据库
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            cmd.CommandText = "insert into student values(‘s001‘,‘张三‘,‘1‘,‘清华大学‘,‘1990-6-1‘)";
            cmd.ExecuteNonQuery();

conn.Close();

********************************************

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main000(string[] args)
        {
            //Console.WriteLine("请输入个人信息:");
            //Console.WriteLine("学号;");
            //string sno = Console.ReadLine();
            //Console.WriteLine("姓名;");
            //string sna = Console.ReadLine();
            //Console.WriteLine("性别(男、女);");
            //string ss = Console.ReadLine();
            //Console.WriteLine("年龄;");
            //int sage = Convert.ToInt32(Console.ReadLine());

string con = "server=.;database=xuexi;uid=sa;pwd=123";
            SqlConnection conn = new SqlConnection(con);
            conn.Open();

SqlCommand oo = new SqlCommand();
            oo.Connection = conn;

//添加表中的数据
           // oo.CommandText = "insert into xinxi values (‘"+sno+"‘,‘"+sna+"‘,‘"+ss+"‘,"+sage+") ";
           // oo.ExecuteNonQuery();

/*
            oo.CommandText = "insert into xinxi values (‘s0001‘,‘张三‘,‘男‘,18) "; oo.ExecuteNonQuery();
            oo.CommandText = "insert into xinxi values (‘s0002‘,‘李四‘,‘男‘,19) "; oo.ExecuteNonQuery();
            oo.CommandText = "insert into xinxi values (‘s0003‘,‘王五‘,‘女‘,22) "; oo.ExecuteNonQuery();
            oo.CommandText = "insert into xinxi values (‘s0004‘,‘赵六‘,‘男‘,20) "; oo.ExecuteNonQuery();
            oo.CommandText = "insert into xinxi values (‘s0005‘,‘刘淇‘,‘女‘,21) ";oo.ExecuteNonQuery();
             *
             */

//修改列表中的内容
           // oo.CommandText = "update xinxi set no=‘"+sno+"‘,name=‘"+sna+"‘,sex=‘"+ss+"‘, age="+sage+" where no=‘" +sno+"‘";
            // oo.ExecuteNonQuery();

//删除列表中满足条件的数据
           // oo.CommandText = "delete from xinxi where no=‘"+sno+"‘";
           //oo.ExecuteNonQuery();
           
            conn.Close();
            Console.ReadLine();
        }
    }
}

************************************************

四、读取器类:——SqlDataReader——从查询的结果集中把数据逐个读出来。
(一)构造:
只有唯一的一种构造方式。再没有别的构造方式了。
SqlDataReader dr = cmd.ExecuteReader();
说明:只读,只向前,读取器工具。内存中只占一条记录的空间。
(二)属性:
HasRows : bool,判断是否有数据可读。是否查出数据来了。

(三)方法:
Read():bool。把结果集中当前行读取内存的datareader中来。读来了,返回true。没有数据可读,返回false。
在使用SqlDataReader读取某列数据时,必须先使用Read()方法把数据先取到内存中的SqlDataReader中。

最常用的读取句式:
            while (dr.Read())
            {
                Console.WriteLine(dr[0].ToString() + dr[1].ToString() + dr[2].ToString() + dr[3].ToString() + dr[4].ToString());
            }
从SqlDataReader中读取某列值的时候,使用方法:
1.dr[列的下标/列的索引号]
2.dr["列名"]
3.dr.GetInt(索引号)  dr.GetString(索引号) ...
(四)案例:
1.登录。

*********************************************************

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;

namespace ConsoleApplication1
{
    class Class1
    {
        public static void Main1111(string[] args)
        {
            //输入
            Console.WriteLine("请输入验证账号密码:");
            Console.WriteLine("账号:");
            string xid= Console.ReadLine();
            Console.WriteLine("密码:");
            string xpwd = Console.ReadLine();

//查询
            string a = "server=.;database=xuexi;uid=sa;pwd=123";
            SqlConnection conn = new SqlConnection(a);

conn.Open();

SqlCommand con = conn.CreateCommand();//初始化下方的 ExecuteReader
            con.CommandText = "select * from login where sid=‘"+xid+"‘ and spwd=‘"+xpwd+"‘";
            SqlDataReader dr = con.ExecuteReader();
            if (dr.HasRows)
            { Console.WriteLine("OK"); }
            else
            { Console.WriteLine("Error"); }

conn.Close();
            Console.ReadLine();
        }
    }
}

*********************************************************
2.读取显示表中的所有的数据。

*****************************************************************

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;

namespace ConsoleApplication1
{
    class Class2
    {
        public static void Main(string[] args)
        {
            //查询输出信息
            string mmm = "server=.;database=xuexi;uid=sa;pwd=123";
            SqlConnection con = new SqlConnection(mmm);
            con.Open();
            SqlCommand conn = con.CreateCommand();
            conn.CommandText = "select * from xinxi";
            SqlDataReader dr = conn.ExecuteReader();

while (dr.Read())
            {
                Console.WriteLine(dr["no"].ToString()+dr["name"].ToString()+dr["sex"].ToString()+dr["age"].ToString());
            }
            con.Close();
            Console.ReadLine();
        }
    }
}

*********************************************************************

3.完善插入功能,在插入之前,判断一下学号是否已存在。如果已存在就提示报名,不存在就插入进去。

时间: 2024-10-14 21:20:18

连接数据库--小练的相关文章

3.12课程小练以及vim编辑器的基本用法(部分)

 课程小练 1. 通过man帮助手册,自行总结which.whereis.whatis命令的使用方法: which:展示出shell命令的完整路径: 格式: which [options] [--] programname [...] whereis:基于二进制的,有源的,和文件或命令的记录手册 格式:whereis [options] name... whatis:在 whatis 数据库里查找完整的单词 格式:whatis - 2. du命令: du - 报告磁盘空间使用情况 du -a,

算法小练#1 - Dany Yang

开始记录每周做过的算法题,这是第一周,新的开始 1021. 删除最外层的括号 题目要求如下: 有效括号字符串为空 ("")."(" + A + ")" 或 A + B,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的连接.例如,"","()","(())()" 和 "(()(()))" 都是有效的括号字符串. 如果有效字符串 S 非空,且不存在将其拆分为 S

C# 多线程与队列操作小练刀

之前写Web没有应用到多线程与队列的知识,写了个小程序,练了一把手,模拟商品抢购,代码如下: class Program { public static Random r = new Random(); public static int GoodsStock = 30; public static Queue payq = new Queue(); public static Queue waitq = new Queue(); static void Main(string[] args)

基于C++ MFC 连接数据库 小应用 小项目浅析展示

这里不知道会不会有人是真的新手 新新手 不知道怎么 如何建立一个MFC 工程 应该不会吧? 就是 打开VS 新建项目-MFC -MFC工程-点基于对话框 -和在静态库中使用 然后点击完成 注意啦 命名 都用英文 源码在这https://pan.baidu.com/s/1chRMPK 工具:vs2013,mysql5.7.6 操作系统:win64位     注意啦 我这里是VS2013  你们要是拷贝我的工程在其他版本上可能不能用   这时候只要点击项目 - 属性-配置属性 -右边的工具集 改成你

动态规划小练

终于意识到动规的水平差得一批了.这边开个小专题练一下. 题目列表是学长 frank_c1 的博客.这样一来可以保证质量,二来也有自己能看懂的题解. 事实上很多题意也是贺的 这里还是挂个链接吧:orz (刷新以获取数学公式) [APIO 2014] Beads and wires 题意 在达芬奇时代,有一个流行的儿童游戏称为连珠线.当然,这个游戏是关于珠子和线的.线是红色或蓝色的,珠子被编号为 $ 1 $ 到 $ n $ .这个游戏从一个珠子开始,每次会用如下方式添加一个新的珠子: $ Appen

【python小练】0002

第 0002 题:将 0001 题生成的 200 个激活码(或者优惠券)保存到 MySQL 关系型数据库中. . . .(一脸懵逼) Python访问数据库:(廖雪峰python教程) 1. SQLite是一种轻量级的嵌入式数据库,其数据库就是一个文件.Python中内置SQLite3,无需另外安装. 要操作数据库,首先要连接到数据库,连接称作“Connection”. 连接数据库后,需要打开游标,称为“Cursor”,通过“Cursor”执行SQL语句,获得执行结果. 实践: # 导入SQLi

Java程序与RSR232串口通讯小练手(转载)

一直以来都是在学习J2EE方面的应用系统开发,从未想过用JAVA来编写硬件交互程序,不过自己就是喜欢尝试一些未曾接触的新东西.在网上搜索了些资源,了解到JAVA写串口通讯的还是蛮多的,那么便着手准备开发调试环境.软件程序开发环境搭建不成问题,可这硬件环境就有点犯难啦.更何况自己用的是笔记本哪来的串口呀,再说要是真拿这串口硬件来自己也不会弄,随即想到了虚拟机,觉得这东西应该也有虚拟的吧,果真跟自己的猜测一样还真有这东西,顺便也下载了个串口小助手做为调试之用.下面就先看看软件环境的搭建: 1.下载c

组合计数小练

组合数学什么的,最有趣了呢-- [51nod 1251] Fox序列的数量 题意 求满足以下条件的序列数目: 序列长度为 $ n $ ,每个元素都属于 $ [1,m] \cap Z $ : 这个序列单调不降: 这个序列出现次数最多的数是唯一的. 数据范围: $ 1≤n,m≤100000 $ ,答案对 $ 1e9+7 $ 取模 题解 先枚举出现次数最多的数的出现次数 $ k $ ,我们要计算的是 $ x_1+x_2+...+x_{m-1}=n-k, ; x_i≤k-1 $ 的非负整数解数目. 可以

微信小程序框架分析小练手(二)——天气微信小程序制作

简单的天气微信小程序. 一.首先,打开微信开发者工具,新建一个项目:weather.如下图: 二.进入app.json中,修改导航栏标题为“贵州天气网”. 三.进入index.wxml,进行当天天气情况的界面布局,包括温度.最低温度和最高温度.天气情况.城市.星期.风向情况.如下图: 四.进入index.js,在data里提供天气数据,让这些数据在界面里显示出来: 五.进入index.wxml,将data里提供的天气数据绑定到页面里: 界面效果如下: 六.进入index.wxss,为index.