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

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//接收用户输入的查询条件
Console.WriteLine("请输入要查询的汽车代号:");
string code = Console.ReadLine();

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

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

//给命令对象一条SQL语句
cmd.CommandText = "select * from Car where Code=@code";
cmd.Parameters.AddWithValue(@code,code);
//改变量绑定参数
cmd.Parameters.Clear();//清除绑定的变量
cmd.Parameters.AddWithValue("@code", code);
//cmd.Parameters.AddWithValue("@name",name);

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

//执行SQL语句
SqlDataReader dr = cmd.ExecuteReader();

//读取数据
if (dr.HasRows)
{
while (dr.Read())
{
Console.WriteLine(dr[0] + "--" + dr[1]);

}
}
else
{
Console.WriteLine("没有查到相应的数据");
}
Console.WriteLine("1是删除2是修改3是添加");
int a = int.Parse(Console.ReadLine());
dr.Close();
if (a == 1)
{
cmd.CommandText = "delete from Car where Code=@code";
cmd.Parameters.Clear();//清除绑定的变量
cmd.Parameters.AddWithValue("@code", code);

cmd.ExecuteNonQuery();
Console.WriteLine("删除成功!");
}

else if (a == 2)
{
int m = 0;
while (m < 1)
{
Console.WriteLine("你可以修改的内容为Powers/Exhaust/Price,请输入你要修改的列");
string b = Console.ReadLine();
Console.WriteLine("修改为");
string c = Console.ReadLine();
if (b == "Powers")
{
cmd.CommandText = "update Car set Powers=@powers where Code='" + code + "'";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@powers", c);

cmd.ExecuteNonQuery();
Console.WriteLine("修改成功");
}
else if (b == "Exhaust")
{
cmd.CommandText = "update Car set Exhaust=@exhaust where Code='" + code + "'";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@exhaust", c);

cmd.ExecuteNonQuery();
Console.WriteLine("修改成功");
}
else if (b == "Price")
{
cmd.CommandText = "update Car set Price=@price where Code='" + code + "'";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@Price", c);

cmd.ExecuteNonQuery();
Console.WriteLine("修改成功");
}
else
{
Console.WriteLine("输入错误");
}

m++;
Console.WriteLine("是否继续修改内容?是1不是2");
int n = int.Parse(Console.ReadLine());
if (n == 1)
{
m--;
}
else
{
Console.WriteLine("你所修改的内容已全部修改完毕");
}

}
}

else if (a == 3)
{
Console.WriteLine("请输入添加的内容");
Console.WriteLine("请输入添加的代号");
string Code = Console.ReadLine();

Console.WriteLine("请输入添加的名字");
string Name = Console.ReadLine();

Console.WriteLine("请输入添加的brand");
string Brand = Console.ReadLine();

Console.WriteLine("请输入添加的time");
string Time = Console.ReadLine();
Console.WriteLine("请输入添加的Oil");
string Oil = Console.ReadLine();
Console.WriteLine("请输入添加的powers");
string Powers = Console.ReadLine();
Console.WriteLine("请输入添加的exhaust");
string Exhaust = Console.ReadLine();
Console.WriteLine("请输入添加的price");
string Price = Console.ReadLine();

Console.WriteLine("请输入添加的pic");
string Pic = Console.ReadLine();

dr.Close();

cmd.CommandText = "insert into Car values('" + Code + "','" + Name + "','" + Brand + "','" + Time + "','" + Oil + "','" + Powers + "','" + Exhaust + "','" + Price + "','" + Pic + "')";
cmd.ExecuteNonQuery();
Console.WriteLine("添加成功!");
}
else
{
Console.WriteLine("输入有误");
}

//关闭连接
conn.Close();

Console.ReadLine();
}

操作数据类m的更多相关文章

  1. ADO.Net(三)——数据库操作类

    操作数据类 避免代码重用.造对象太多.不能分工开发 利用面向对象的方法,把数据访问的方式优化一下,利用封装类 一般封装成三个类: 1.数据连接类 提供数据连接对象 需要引用命名空间: using Sy ...

  2. ADO.NET 数据库操作类

    操作数据类 避免代码重用.造对象太多.不能分工开发 利用面向对象的方法,把数据访问的方式优化一下,利用封装类   一般封装成三个类: 1.数据连接类 提供数据连接对象 需要引用命名空间: using ...

  3. Java类的继承与多态特性-入门笔记

    相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...

  4. 如何在在WinFrom的DataGridView中做到数据持续动态加载而不卡死

    1.在这个过程我用过好几种办法 (1)使用委托的办法,这个方法可以做到持续加载,但是效果不理想会卡死 (2)开启线程的方法,会造成卡死 (3)使用另一个窗体的线程做持续加载(子窗体),让子窗体作为一个 ...

  5. JQuery源码解析(十一)

    内存泄露 什么是内存泄露? 内存泄露是指一块被分配的内存既不能使用,又不能回收,直到浏览器进程结束.在C++中,因为是手动管理内存,内存泄露是经常出现的事情.而现在流行的C#和Java等语言采用了自动 ...

  6. WPF中使用后台代码来控制TreeView的选择项(SelectedItem)以及展开节点操作

    首先为TreeView控件制作一个Style: <Style x:Key="LibraryTreeViewItemStyle" TargetType="{x:Typ ...

  7. spring boot 常见的第三方集成

    spring boot基于1.x. 一 集成redis 1.1 配置 spring.redis.host = localhost spring.redis.port = 6379 spring.red ...

  8. Kotlin入门(15)独门秘笈之特殊类

    上一篇文章介绍了Kotlin的几种开放性修饰符,以及如何从基类派生出子类,其中提到了被abstract修饰的抽象类.除了与Java共有的抽象类,Kotlin还新增了好几种特殊类,这些特殊类分别适应不同 ...

  9. Winform开发框架之框架演化

    Winform开发框架方面的文章我介绍很多了,有宏观介绍,也有部分技术细节的交流,每次我希望能从不同角度,不同方面来介绍我的WInform开发框架,这些其实都是来源于客户的需求,真实的项目场景.本文主 ...

随机推荐

  1. SpringBoot Boot内嵌Tomcat

    Spring Boot: SpringBoot-start-web 里面依赖的环境中 如果是外部的Tomcat 容器,可以通过修改config进行配置 内嵌的呢? 如何定制和修改Servlet容器的相 ...

  2. 【eclipse】svn在线安装

    Subclipse1.8 http://subclipse.tigris.org/update_1.8.x

  3. python 列表元素统计出现的次数并输出字典

    import collections my_list = [,,,,,,,,,,,,] print("Original List : ",my_list) ctr = collec ...

  4. PHP 手机号中间4位加密

    /** * 中间加密 字符串截取法 */ public static function encryptTel($tel) { $new_tel = substr($tel, 0, 3).'****'. ...

  5. Mediator(中介者)

    意图: 用一个中介对象来封装一系列的对象交互.中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互. 适用性: 一组对象以定义良好但是复杂的方式进行通信.产生的相互依 ...

  6. Qt532__std::numeric_limits<qint64>::min();

    1.C:\Qt\Qt5.3.2_vs10_opengl\5.3\msvc2010_opengl\include\QtCore\qdatetime.h static inline qint64 null ...

  7. 【Python】实现对大文件的增量读取

    背景 前段时间在做一个算法测试,需要对源于日志的数据进行分析才能获取到结果:日志文件较大,所以想要获取数据的变化曲线,增量读取是最好的方式. 网上有很多人的技术博客都是写的用for循环readline ...

  8. javascript之反柯里化(uncurrying)

    在JavaScript中,当我们调用对象的某个方法时,其实不用去关心该对象原本是否被设计为拥有这个方法,这是动态类型语言的特点.可以通过反柯里化(uncurrying)函数实现,让一个对象去借用一个原 ...

  9. apache允许列目录

    vi /etc/httpd/conf.d/welcom.conf <LocationMatch "^/+$">    #Options -Indexes vi /etc ...

  10. 2-7-搭建DNS服务器实现域名解析

    学习服务的方法: 了解服务的作用:名称,功能,特点 安装服务 配置文件的位置,端口 服务开启和关闭的脚本 修改配置文件(实战举例) 排错(从上到下,从内到外) -------------------- ...