ADO.NET练习

static void Main(string[] args)
{
//练习
//1、让用户输入一个代号,查到一条数据(car,info),并显示
//2、输出提示,输入1删除该数据,输入2修改数据,输入3添加数据
//3、当用户输入1,把查到的这条数据删除
//4、当用户输入2,提示输入其他值,主键不修改,输入完成,修改这项数据
//5、当用户输入3,提示用户输入所有的列,然后保存到数据库

string [] AR = new string[] { "code","姓名","性别","民族","生日"};
//用户输入代号
Console.WriteLine("请输入要查询的代号");
string code = Console.ReadLine();

//造连接对象
SqlConnection conn = new SqlConnection("server=.;database=mydb;user=sa;pwd=diushiDEwutong0");

//造命令对象
SqlCommand cmd = conn.CreateCommand();

//给命令对象SQL语句
cmd.CommandText = "select * from Info where [email protected]";
//防注入
//该变量绑定参数
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@code",code);

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

SqlDataReader dr = cmd.ExecuteReader();

if (dr.HasRows)
{
while (dr.Read())
{
int i = 0;

while (i < dr.FieldCount)
{
Console.Write(AR[i] + "\t");
i++;
}
Console.Write("\n");
i = 0;
while (i < dr.FieldCount)
{
Console.Write(dr[i] + "\t");
i++;
}
Console.Write("\n");
}
}
else
{
Console.WriteLine("未查询到数据");
while (true)
{
dr.Close();
Console.WriteLine("请重新输入要查询的代号");
code = Console.ReadLine();

cmd.CommandText = "select * from Info where [email protected]";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@code", code);
dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
int i = 0;

while (i < dr.FieldCount)
{
Console.Write(AR[i] + "\t");
i++;
}
Console.Write("\n");
i = 0;
while (i < dr.FieldCount)
{
Console.Write(dr[i] + "\t");
i++;
}
Console.Write("\n");
}
break;
}
else
{
Console.WriteLine("未查询到数据");
}
}
}

while (true)
{
Console.WriteLine("输入1删除该数据,输入2修改数据,输入3添加数据,输入其他跳出程序");
string s = Console.ReadLine();
if (s ==" 1")
{
if (dr.HasRows)
{
Console.WriteLine("确认删除请输入:1");
int sc = int.Parse(Console.ReadLine());
if (sc == 1)
{
dr.Close();
cmd.CommandText = "delete from Info where [email protected]";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@code", code);
cmd.ExecuteNonQuery();
Console.WriteLine("删除成功");
}
else
{
Console.WriteLine("取消操作");
}
}
}
else if (s == "2")//修改内容
{
while (true)
{
dr.Close();
Console.Write("请输入要修改的列名:");
string str = Console.ReadLine();
string gai = "";
switch (str)
{
case "姓名":
gai = "Name";
break;
case "性别":
gai = "Sex";
break;
case "民族":
gai = "Nation";
break;
case "生日":
gai = "Birthday";
break;
default:
Console.WriteLine("输入错误");
continue;

}
if (gai == "Sex")
{
Console.Write("请输入要修改的内容:");
bool sex = Console.ReadLine() == "男" ? true : false;
cmd.CommandText = "update Info set " + gai + "=‘" + sex + "‘ where [email protected]";
cmd.ExecuteNonQuery();
}
else if (gai == "Nation")
{
string nationcode = "n001";
Console.Write("请输入要修改的内容:");
string nation = Console.ReadLine();
cmd.CommandText = "select Code from Nation where Name = ‘" + nation + "‘";
dr.Close(); dr = cmd.ExecuteReader();
if (dr.HasRows)
{
dr.Read();
nationcode = dr[0].ToString();
}
cmd.CommandText = "update Info set " + gai + "=‘" + nationcode + "‘ where [email protected]";
dr.Close();
cmd.ExecuteNonQuery();
}
else
{
Console.Write("请输入要修改的内容:");
string neirong = Console.ReadLine();
cmd.CommandText = "update Info set " + gai + "=‘" + neirong + "‘ where [email protected]";
cmd.ExecuteNonQuery();
}
Console.WriteLine("修改成功!");
Console.WriteLine("修改后的内容为:");

cmd.CommandText = "select * from Info where [email protected]";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@code", code);
dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
int i = 0;

while (i < dr.FieldCount)
{
Console.Write(AR[i] + "\t");
i++;
}
Console.Write("\n");
i = 0;
while (i < dr.FieldCount)
{
Console.Write(dr[i] + "\t");
i++;
}
Console.Write("\n");
}
}
Console.WriteLine("是否继续修改?继续修改输入1;不修改输入任意键");
int b = int.Parse(Console.ReadLine());
if (b == 1)
{
Console.WriteLine("继续修改");
}
else
{
break;
}

}

}
else if (s == "3")//添加数据
{
//让用户输入要添加的内容
Console.WriteLine("请输入要添加的代号:");
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";

//将民族名称转为名族代号
cmd.CommandText = "select Code from Nation where Name = ‘" + nation + "‘";
dr.Close();

dr = cmd.ExecuteReader();
if (dr.HasRows)
{
dr.Read();
nationcode = dr[0].ToString();
}
//往Info表添加数据
cmd.CommandText = "insert into Info values(‘" + code + "‘,‘" + name + "‘,‘" + sex + "‘,‘" + nationcode + "‘,‘" + birthday + "‘)";
dr.Close();
cmd.ExecuteNonQuery();
Console.WriteLine("添加成功!");

Console.WriteLine("添加的内容为:");
cmd.CommandText = "select * from Info where [email protected]";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@code", code);
dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
int i = 0;

while (i < dr.FieldCount)
{
Console.Write(AR[i] + "\t");
i++;
}
Console.Write("\n");
i = 0;
while (i < dr.FieldCount)
{
Console.Write(dr[i] + "\t");
i++;
}
Console.Write("\n");
}
}

}
else
{
Console.WriteLine("程序跳出");
break;
}
}
conn.Close();
Console.ReadLine();

时间: 2024-10-12 12:45:17

ADO.NET练习的相关文章

ODBC、ADO

一.VC访问数据库的技术 1.ODBC --Open Database Connectivity微软开放式数据互联,一组用于访问和操作数据库的API,可以访问不同的数据库产品,但只能访问关系型数据库.MFC将这组API函数封装成ODBC类,使用前需要将不同的数据库设置为ODBC数据源. 2.DAO --基于ODBC的,目前已经被淘汰 3.OLE DB  --基于COM技术的,提供了一组用于访问和操作数据库的接口.既可以访问关系型又可以访问非关系型数据,性能也有了很大提高.缺点是学习难度大,对程序

一种利用ADO连接池操作MySQL的解决方案(VC++)

VC++连接MySQL数据库 常用的方式有三种:ADO.mysql++,mysql API ; 本文只讲述ADO的连接方式. 为什么要使用连接池? 对于简单的数据库应用,完全可以先创建一个常连接(此连接永远不关闭,直接数进程退出),但是这样做至少会引起两个问题:(1)资源竞争,多个数据库请求操作不能同时进行,后一请求必须要等到前一请求完成后才能进行:(2)多线程情况下容易出现混乱,甚至出现资源异常释放.还有一种方法,就是使用数据库时创建连接,使用完后关闭连接回收资源.这种方式在数据库操作频繁的情

巩固ADO.NET

回想一年半前学数据库的时候是找的培训视频看的,大概10天视频(有一半多时间关于数据库操作的winform)的内容看完后数据库这块就没有了,还以为自己学的挺好,现在想想真是傻的可爱.虽然以ADO.NET为基础的EF挺好用的,但抽时间好好巩固下基础我觉得很重要.不废话了,ADO.NET提供对SQL.Oracle和MySql等数据库的访问操作,它有2个重要的组成部分:.NET数据提供程序和数据集DataSet. 1.什么是ADO.NET .NET数据提供程序就是一个类集,本质的功能就是用于连接数据库.

CRUD Operations In ASP.NET MVC 5 Using ADO.NET

Background After awesome response of an published by me in the year 2013: Insert, Update, Delete In GridView Using ASP.Net C#. It now has more than 140 K views, therefore to help beginners I decided to rewrite the article i with stepbystep approach u

异常:error 0152: No Entity Framework provider found for the ADO.NET provider with invariant name &#39;System.Data.SqlClient&#39;

error 0152: No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient' error 0152: No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient'. Make sure the pro

ADO.NET

1.vb.net: vb.net自身并不具备对数据库进行操作的功能,它对数据库的处理通过.NET Framwork SDK中面向数据库编程的类库和微软的MDAC 来实现的,其中ADO.NET 是.NET Framwork SDK重要组成部分.它是.NET Framwork SDK中用以操作数控的类库的总称. 2.ado.net     1.命名空间:在使用前先引用 imports system.data imports system.sqlclient 2.ado.net的核心内容 Connec

数据库的连接使用——使用ADO.NET连接数据库

一.ADO.NET简介 ADO.NET是由很多类组成的一个类库,这些类库提供了很多对象,用来完成数据的连接.查询.插入.更新和删除等操作.其中主要包括以下对象: 1.Connection对象:用来连接到数据库(OLE DB使用OleDbConnection,SQL SERVER使用SqlConnection) 2.Command对象:用来对数据库执行SQL命令,如插入.删除.修改.查询 3.DataReader对象:用来从数据库返回只读数据 4.DataAdapter对象:与DataSet对象结

.NET Core中ADO.NET SqlClient的使用与常见问题

一.简介 在很多要求性能的项目中,我们都要使用传统的ADO.NET的方式来完成我们日常的工作:目前有一些网友问有关于.NET Core操作SQL Server的问题在本文中解答一下. 本文旨在指出,在.NET Core中使用ADO.NET SqlClient操作SQL SERVER数据库时的一些常见的问题,在本文的第三部分,如果只关心解决问题,请跳过第两部分进行阅读. 二.使用ADO.NET 首先建立好一个ASP.NET MVC Core Project 或 .NET Core Class Li

ADO.NET数据访问技术概览

1. 以数据为中心的应用程序设计 1.1. ADO.NET 支持下列的存储类型? 无结构? 有结构, 无层次的数据 – 以逗号分离的数据(CSV) 文件.Microsoft Excel 电子表格.Microsoft Exchange 文件.Active Directory 文件等? 有层次的数据 – XML 文档等? 关系型数据库 – SQL Server.Oracle.Access 等. 1.2. 连接环境? 连接环境是指用户在这种环境下始终保持与数据源的连接? 优点 – 环境易于实施安全控制

使用ADO实现BLOB数据的存取 -- ADO开发实践之二

使用ADO实现BLOB数据的存取 -- ADO开发实践之二 http://www.360doc.com/content/11/0113/16/4780948_86256633.shtml 一.前言 在上一篇文章<>中我们详细介绍了ADO基本的操作方法,在实际的开发过程中我们常常需要存储较大的二进制数据对象,比如:图像.音频文件.或其它二进制数据,这些数据我们称之为二进制大对象BLOB(Binary Large Object),其存取的方式与普通数据有所区别.本文将介绍利用ADO在数据库中存取B