using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent(); } private void button2_Click(object sender, EventArgs e)
{ }
string connstr = "server=DESKTOP-QQGOIKH;uid=sa;pwd=123;database=stuDB";
private void Form1_Load(object sender, EventArgs e)
{
//1、查询语句
string sql = "select * from student where 1=1";
//2、创建连接对象
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
//3、创建执行对象
SqlCommand cmd = new SqlCommand(sql, conn);
//4、创建适配器对象,Command对象不能一次处理多条数据
SqlDataAdapter sda = new SqlDataAdapter(cmd);
//5、创建数据集,用来接收数据表、可以装多张表的数据
DataSet ds = new DataSet();
//6、填充数据、将查询上的数据放到数据集中
sda.Fill(ds,"aa");
//7、关闭连接
conn.Close();
//DataSet中每一个元素是一个DataTable对象,与数据库中的Table相似
DataTable dt = ds.Tables["aa"];
dataGridView1.DataSource = dt;
} private void button1_Click(object sender, EventArgs e)
{
//新增
//1、取数据
string stuName = textBox1.Text;
string stuNo = textBox2.Text;
string sex = "女";
if (radioButton1.Checked)
{
sex = "男";
}
string remark = radioButton1.Text;
//2、准备数据
string sql = "insert into student values(@a,@b,@c,@d)";
SqlParameter[] pms = new SqlParameter[];
pms[] = new SqlParameter("@a", stuName);
pms[] = new SqlParameter("@b", stuNo);
pms[] = new SqlParameter("@c", sex);
pms[] = new SqlParameter("@d", remark);
//ADO.NET
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddRange(pms);
int i = cmd.ExecuteNonQuery();
conn.Close();
if (i>)
{
MessageBox.Show("新增成功");
}
else
{
MessageBox.Show("新增失败");
}
} private void button3_Click(object sender, EventArgs e)
{
//修改 } private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
{
//找到选中行的数据ID号,通过id把student表的数据删除
if (dataGridView1.SelectedRows.Count == )
{
MessageBox.Show("没有要删除的数据");
return;
}
DialogResult dr = MessageBox.Show("确定删除吗", "友情提示", MessageBoxButtons.YesNo);
if (dr == DialogResult.Yes)
{
//ID获取
string id = dataGridView1.SelectedRows[].Cells[].Value.ToString();
string sql = "delete from student where stuid=@a";
SqlParameter pm = new SqlParameter("@a",id);
//ADO.NET********删除操作
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.Add(pm);//删除
//ExecuteNonQuery方法可以在命令是insert\delete\update用
//执行sql命令返回受影响行数
int i = cmd.ExecuteNonQuery();
conn.Close();
if (i > )
{
MessageBox.Show("删除成功");
}
else
{
MessageBox.Show("删除失败");
} }
} private void 修改ToolStripMenuItem_Click(object sender, EventArgs e)
{
//编辑操作,把选中的行id找到,后去取数据库id对应学生数据
//把取到的内容放到控件中
if (dataGridView1.SelectedRows.Count==)
{
MessageBox.Show("没有选中项");
return;
}
string stuid = dataGridView1.SelectedRows[].Cells[].Value.ToString();
//取stuid对应的数据
string sql = "select * from student where stuID=@a";
SqlParameter pm = new SqlParameter("@a", stuid);
//*************ADO.NET操作*************
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
SqlCommand cmd = new SqlCommand(sql,conn);
cmd.Parameters.Add(pm);
//执行
SqlDataReader sdr = cmd.ExecuteReader();
//读取 Read()方法,每读一次就取结果中的下一条记录
bool b = sdr.Read();
if (b==true)
{
//显示数据,读取到的数据从dataReader对象上拿
textBox1.Text = sdr["stuName"].ToString();
textBox2.Text = sdr["stuNo"].ToString();
textBox3.Text = sdr["stuID"].ToString();
string sex = sdr["sex"].ToString();
radioButton1.Checked = sex == "男";
radioButton2.Checked = sex == "女";
richTextBox1.Text = sdr["remark"].ToString();
}
conn.Close();
} private void button2_Click_1(object sender, EventArgs e)
{
//修改
//根据选中的学生编号修改
string sql = "update student set stuName=@a,stuNo=@b,sex=@c,remark=@d where stuID=@e";
SqlParameter pm = new SqlParameter("@e", textBox3.Text);
string stuName = textBox1.Text;
string stuNo = textBox2.Text;
string sex = "女";
if (radioButton1.Checked)
{
sex = "男";
}
string remark = radioButton1.Text;
string id = textBox3.Text;
//2、准备数据 SqlParameter[] pms = new SqlParameter[];
pms[] = new SqlParameter("@a", stuName);
pms[] = new SqlParameter("@b", stuNo);
pms[] = new SqlParameter("@c", sex);
pms[] = new SqlParameter("@d", remark);
pms[] = new SqlParameter("@e", id);
//ADO.NET
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddRange(pms);
int i = cmd.ExecuteNonQuery();
conn.Close();
if (i > )
{
MessageBox.Show("修改成功");
}
else
{
MessageBox.Show("修改失败");
} }
}
}

winfrom增删改查的更多相关文章

  1. Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程+事物案例演示

    Dapper的牛逼就不扯蛋了,答应群友做个入门Demo的,现有园友需要,那么公开分享一下: 完整Demo:http://pan.baidu.com/s/1i3TcEzj 注 意 事 项:http:// ...

  2. ASP.NET从零开始学习EF的增删改查

           ASP.NET从零开始学习EF的增删改查           最近辞职了,但是离真正的离职还有一段时间,趁着这段空档期,总想着写些东西,想来想去,也不是很明确到底想写个啥,但是闲着也是够 ...

  3. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(9)-MVC与EasyUI结合增删改查

    系列目录 文章于2016-12-17日重写 在第八讲中,我们已经做到了怎么样分页.这一讲主要讲增删改查.第六讲的代码已经给出,里面包含了增删改,大家可以下载下来看下. 这讲主要是,制作漂亮的工具栏,虽 ...

  4. 通过Java代码实现对数据库的数据进行操作:增删改查

    在写代码之前,依然是引用mysql数据库的jar包文件:右键项目-构建路径-设置构建路径-库-添加外部JAR 在数据库中我们已经建立好一个表xs :分别有xuehao  xingming    xue ...

  5. Hibernate全套增删改查+分页

    1.创建一个web工程 2.导入jar包 3.创建Student表 4.创建实体类 package com.entity; public class Student { private Integer ...

  6. 使用 Json.Net 对Json文本进行 增删改查

    JSON 已经成为当前主流交互格式, 如何在C#中使用 Json.Net 对Json文本进行 增删改查呢?见如下代码 #region Create (从零创建) public static strin ...

  7. yii2 增删改查

    自己总结的yii2 advanced 版本的简单的增删改查,希望对大家有所帮助 1.gii生成的actionCreate()方法中 获取插入语句的id $id = $model->attribu ...

  8. Batis-iBatis基本操作(增删改查)

    Batis-iBatis基本操作(增删改查) 时间 2014-04-10 17:55:20  CSDN博客 原文  http://blog.csdn.net/mazhaojuan/article/de ...

  9. JS组件系列——又一款MVVM组件:Vue(一:30分钟搞定前端增删改查)

    前言:关于Vue框架,好几个月之前就听说过,了解一项新技术之后,总是处于观望状态,一直在犹豫要不要系统学习下.正好最近有点空,就去官网了解了下,看上去还不错的一个组件,就抽空研究了下.最近园子里vue ...

随机推荐

  1. :nth-child()和:nth-of-type(n)区别

    ele:nth-child(n) 父元素下第n个元素且这个元素为ele ele:nth-of-type(n) 指父元素下第n个ele元素

  2. sql server添加列

    alter table 表名 add 列名 数据类型如:alter table student add sex char(2)

  3. VMWare联网

    VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式).  如果你想利用VMWare在局域网中新建一个独立的虚拟服务器,为局域网用 ...

  4. 如何从innodb的数据字典里恢复表结构

    需要学会使用percona-data-recovery-tool-for-innodb,用这个:sys_parser,参考这篇文章,

  5. ansible

    3.1 配置 #vim /etc/ansible/hosts       //定义主机,支持IP和域名,支持分组 [local] 127.0.0.1 [nginx] 192.168.0.10     ...

  6. Aspose.Words操作word生成PDF文档

    Aspose.Words操作word生成PDF文档 using Aspose.Words; using System; using System.Collections.Generic; using ...

  7. MySQL Replication的Reset slave重置命令

    有时要清除从库的所有复制信息,如切换为不同的Master, 主从重做等:Reset slave是一个比较危险的命令,所以在执行前一定要准备知道其含义. 1. 命令在slave上执行,执行前一定要停掉s ...

  8. React Native 开发笔记

    ReactNativeDemo 学习ReactNative开发,搭建ReactNative第一个项目 React Native 开发笔记 1.安装Homebrew $ /usr/bin/ruby -e ...

  9. 怎么使用 Laravel 的服务容器来优化读写数据库中的 options关键词

    其中我们可以最方便地利用的一个特性就是 Laravel 的服务容器了.在这里我不多赘述 Service Container 是个啥,想了解的可以自行搜索.不想了解的就只要大致知道它是个可以 绑定/取出 ...

  10. 解析八大O2O典范:他们都做了什么?

    随着无线技术的发展二维码的发展以及智能手机的普及,零售的解决方案不仅在在一台电脑上解决,可以从线上到线下,为消费者贯通线上线下的购物体验.人人都爱O2O,可做得好的O2O案例却并不多.要解决利益分配. ...