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. kylin-cube存储结构

    前言 本篇文章通过图文的方式分析不同维度组合下的cube在hbase中的存储结构 需要声明的是,kylin不存原始数据,存储cube 全维度构建 假设一张表有3个字段name,age,sex,那么当通 ...

  2. Hadoop-1.0.4集群搭建笔记

    这篇文章介绍的是简单的配置Hadoop集群的方法,适合实验和小型项目用,正式运行的集群需要用更正规的方法和更详细的参数配置,不适合使用这篇文章. 相关随笔: 用python + hadoop stre ...

  3. Python学习札记(四十) 面向对象编程 Object Oriented Program 11

    参考:使用元类 NOTE: type() 1.type()函数可以用于检查一个类或者变量的类型. #!/usr/bin/env python3 class Myclass(object): " ...

  4. Python中通过多个字符分割(split)字符串的方法--转载

    Python中字符串自带的split方法一次只能使用一个字符对字符串进行分割,但是python的正则模块则可以实现多个字符分割 import re re.split('_#|','this_is#a| ...

  5. data.table 中的动态作用域

    data.table 中最常用的语法就是 data[i, j, by],其中 i.j 和 by 都是在动态作用域中被计算的.换句话说,我们不仅可以直接使用列,也可以提前定义诸如 .N ..I 和 .S ...

  6. kue

    尝试着看英文的文档,你发现他其实并不难. https://www.npmjs.com/package/kue

  7. DCOS(centos 7.4/7.6)

    https://dcos.io/releases/ https://downloads.dcos.io/dcos/stable/1.12.0/dcos_generate_config.sh https ...

  8. 将java打jar包成linux后台服务service

    将java打jar包成linux后台服务service 第一步:将java程序打成jar包 build.gradle配置文件中加spring-boot-gradle-plugin插件,具体配置如下(配 ...

  9. 009PHP文件处理——文件处理 file_get_contents file_put_contents fgetc fgets fgetss

    <?php /** * 文件处理 file_get_contents file_put_contents fgetc fgets fgetss */ //fgetc() 传入文件操作句柄.每次获 ...

  10. checkbox选中的问题(Ajax.BeginForm)

    判断checkbox选中的方法方法一:if ($("#checkbox-id")get(0).checked) { // do something} 方法二:if($('#chec ...