20131207-ADO.NET-第十六天
[1]快捷键
工具箱:ctrl+w+x 首字母定位控件范围
属性:F4 或ctrl+w+p Tab跳转 ,home 与end也有效
[2]连接字符串
string str = "Data Source=xy-pc;Initial Catalog=myitcast;Integrated Security=true";
[*]
[3]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace _06大项目
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnAdd_Click(object sender, EventArgs e)
{
//获取文本框的内容--要判断(你们做)
string name = txtAddName.Text;//姓名
int gender = txtAddGender.Text == "男" ? 1 : txtAddGender.Text == "女" ? 0 : 2;//站着埋-坑//大坑
//判断一下性别的值 是1还是0 如果都不是则告诉用户输入错误请重新输入(留给你们了)
int age = Convert.ToInt32(txtAddAge.Text);//年龄--坑(留给你们了)
string phone = txtAddPhone.Text;//电话号码
//创建连接字符串
string str = "Data Source=xy-pc;Initial Catalog=myitcast;Integrated Security=true";
int count = -1;
//连接数据库
using (SqlConnection con = new SqlConnection(str))
{
string sql = string.Format("insert INTO TblStudent(TSName,TSGender,TSAge,TSPhone,tclassid)VALUES('{0}',{1},{2},'{3}',{4})", name, gender, age, phone, 1);
using (SqlCommand cmd = new SqlCommand(sql, con))
{
//打开数据库
con.Open();
count = cmd.ExecuteNonQuery();//执行sql语句
}
}
//执行sql语句
if (count > 0)
{
MessageBox.Show("添加成功");
}
else
{
MessageBox.Show("添加失败");
}
//结果
}
private void Form1_Load(object sender, EventArgs e)
{
LoadAllStudent();//加载学生
}
private void LoadAllStudent()
{
//创建一个集合,存储每个学生对象
List<Student> list = new List<Student>();
//封装成方法---还要刷新呢
//查询所有的数据
string str = "Data Source=xy-pc;Initial Catalog=myitcast;Integrated Security=true";//创建连接字符串
//连接数据库
using (SqlConnection con = new SqlConnection(str))
{
string sql = "select tsid, TSName,TSGender,TSAge,TSPhone FROM TblStudent";
using (SqlCommand cmd = new SqlCommand(sql, con))
{
con.Open();//打开数据库
using (SqlDataReader sda = cmd.ExecuteReader())
{
if (sda.HasRows)//如果为true证明至少有一条数据
{
while (sda.Read())//读取到下一条
{
// sda[1]//每一列的数据
Student stu = new Student();//创建一个学生对象
stu.TSId = sda.GetInt32(0);//主键id的值
stu.TSName = sda["tsname"].ToString();
stu.TSGender = sda.GetBoolean(2) == true ? '男' : '女';
stu.TSAge = sda.GetInt32(3);//年龄
stu.TSPhone = sda.GetString(4);
list.Add(stu);
}
}
}
}
}
dgv.DataSource = list;//把集合绑定到控件上
}
private void deletetsm_Click(object sender, EventArgs e)
{
//首先判断用户是否选中行
if (dgv.SelectedRows.Count > 0)
{
int count=-1;
string id = dgv.SelectedRows[0].Cells[0].Value.ToString();
//创建连接字符串
string str = "Data Source=xy-pc;Initial Catalog=myitcast;Integrated Security=true";
//连接数据库
using (SqlConnection con=new SqlConnection(str))
{
string sql = "delete from tblstudent where tsid="+id;
using (SqlCommand cmd=new SqlCommand(sql,con))
{
con.Open();
count =cmd.ExecuteNonQuery();
}// end using
}//end using
if (count>0)
{
LoadAllStudent();
MessageBox.Show("删除成功");
}
else
{
MessageBox.Show("删除失败");
}
}//end if
//获取选中行的id
//MessageBox.Show("删除了");
}
private void dgv_RowEnter(object sender, DataGridViewCellEventArgs e)
{
//是否有选中的行
if (dgv.SelectedRows.Count>0)
{
//获取 id 姓名 性别 年龄
labId.Text = dgv.SelectedRows[0].Cells[0].Value.ToString();//id的值
//姓名
txtUpName.Text = dgv.SelectedRows[0].Cells[1].Value.ToString();
//性别
txtUpGender.Text = dgv.SelectedRows[0].Cells[2].Value.ToString();
//年龄
txtUpPhone.Text = dgv.SelectedRows[0].Cells[3].Value.ToString();
txtUpAge.Text = dgv.SelectedRows[0].Cells[4].Value.ToString();
}
}
private void btnUpdate_Click(object sender, EventArgs e)
{
int count = -1;
//首先获取 当前选中行的id
string id = labId.Text;
//int gender = txtUpGender.Text == "男" ? 1 : txtUpGender.Text == "女" ? 0 : 2;
int gender = txtUpGender.Text == "男" ? 1 : 0;
// 创建连接数据库的字符串
string str = "Data Source=xy-pc;Initial Catalog=myitcast;Integrated Security=true";
//连接数据库
using (SqlConnection con=new SqlConnection(str))
{
string sql =string.Format( "update tblstudent set TSName='{0}',TSGender={1},TSAge={2},TSPhone='{3}' where tsid={4}",txtUpName.Text,gender,txtUpAge.Text,txtUpPhone.Text,id);
using (SqlCommand cmd=new SqlCommand(sql,con))
{
con.Open(); //打开数据库
count= cmd.ExecuteNonQuery();
}
}
if (count>0)
{
LoadAllStudent();//刷新
MessageBox.Show("修改成功");
}
else
{
MessageBox.Show("修改失败");
}
//执行
}
private void btnCount_Click(object sender, EventArgs e)
{
string count = "";
//创建连接字符串
string str = "Data Source=xy-pc;Initial Catalog=MyItcast;Integrated Security=True";
//连接数据库
using (SqlConnection con=new SqlConnection(str))
{
string sql = "select count(*) from tblstudent";
using (SqlCommand cmd=new SqlCommand(sql,con))
{
con.Open();//打开数据库
count= cmd.ExecuteScalar().ToString();
}
}
//打开数据库
MessageBox.Show("一共有"+count+"个童鞋");
//执行sql语句
}
}
}
//数据转对象
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _06大项目
{
public class Student
{
// TSId, TSName, TSGender, TSAddress, TSPhone, TSAge, TSBirthday, TSCardId, TClassId
//用到哪列写哪列
//查询四列
private int _tSId;
public int TSId
{
get { return _tSId; }
set { _tSId = value; }
}
private string _tSName;
public string TSName
{
get { return _tSName; }
set { _tSName = value; }
}
private char _tSGender; //坑
public char TSGender
{
get { return _tSGender; }
set { _tSGender = value; }
}
private string _tSPhone;
public string TSPhone
{
get { return _tSPhone; }
set { _tSPhone = value; }
}
private int _tSAge;
public int TSAge
{
get { return _tSAge; }
set { _tSAge = value; }
}
}
}
20131207-ADO.NET-第十六天的更多相关文章
- Ext JS学习第十六天 事件机制event(一) DotNet进阶系列(持续更新) 第一节:.Net版基于WebSocket的聊天室样例 第十五节:深入理解async和await的作用及各种适用场景和用法 第十五节:深入理解async和await的作用及各种适用场景和用法 前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、G
code&monkey Ext JS学习第十六天 事件机制event(一) 此文用来记录学习笔记: 休息了好几天,从今天开始继续保持更新,鞭策自己学习 今天我们来说一说什么是事件,对于事件 ...
- javaSE第二十六天
第二十六天 414 1:网络编程(理解) 414 (1)网络编程:用Java语言实现计算机间数据的信息传递和资源共享 414 (2)网络编程模型 414 (3)网络编程的三要素 ...
- javaSE第十六天
第十六天 140 1:List的子类(掌握) 140 (1)List的子类特点 140 (2)ArrayList 141 A:没有特有功能需要学习 141 B:案例 ...
- 第三百五十六天 how can I 坚持
一年了,三百五十六天.写个算法算下对不对. 今天突然想买辆自行车了.云马智行车,还是捷安特,好想买一辆. 网好卡.貌似少记了一天呢,357了.好快. 睡觉了,还没锻炼呢,太晚了. 1458748800 ...
- IT第二十六天 - Swing、上周总结
IT第二十六天 上午 Swing 1.对于方法的参数如果是int数值类型,应该直接调用该类中的常量属性,而不应该直接填入数字 2.Toolkit类中定义的方法是可以直接访问本地计算机(操作系统)信息的 ...
- Python第二十六天 python装饰器
Python第二十六天 python装饰器 装饰器Python 2.4 开始提供了装饰器( decorator ),装饰器作为修改函数的一种便捷方式,为工程师编写程序提供了便利性和灵活性装饰器本质上就 ...
- OCM_第十六天课程:Section7 —》GI 及 ASM 安装配置 _安装 GRID 软件/创建和管理 ASM 磁盘组/创建和管理 ASM 实例
注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...
- 孤荷凌寒自学python第八十六天对selenium模块进行较详细的了解
孤荷凌寒自学python第八十六天对selenium模块进行较详细的了解 (今天由于文中所阐述的原因没有进行屏幕录屏,见谅) 为了能够使用selenium模块进行真正的操作,今天主要大范围搜索资料进行 ...
- 孤荷凌寒自学python第七十六天开始写Python的第一个爬虫6
孤荷凌寒自学python第七十六天开始写Python的第一个爬虫6 (完整学习过程屏幕记录视频地址在文末) 今天在上一天的基础上继续完成对我的第一个代码程序的书写. 不过由于对python-docx模 ...
- 孤荷凌寒自学python第六十六天学习mongoDB的基本操作并进行简单封装5
孤荷凌寒自学python第六十六天学习mongoDB的基本操作并进行简单封装5并学习权限设置 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第十二天. 今天继续学习mongo ...
随机推荐
- Win10《芒果TV》发布两周年纪念特别献礼,陪你度国庆,好礼送不停
2015年芒果TV和微软中国联姻,在Windows10发布之际,共同宣告了Win10版<芒果TV>的诞生,第一个版本于2015年9月30日登陆Windows商店,历经28次迭代,现在她两岁 ...
- Android零基础入门第46节:下拉框Spinner
原文:Android零基础入门第46节:下拉框Spinner 上一期学习了GridView的使用,你已经掌握了吗?本期一起来学习Spinner的使用. 一.认识Spinner Spinner其实就是一 ...
- IP解析
import sys,re ip_1_stat = {} source_fp = open("ip_region","r") p = re.compile(&q ...
- 中国目前的房地产总市值占GDP的比例为411%,远远高于世界平均水平的260%
到2015年统计,一线城市空置率22%,二线城市24%.中央开始喊要供应侧改革了. 中国目前的房地产总市值占GDP的比例为411%,远远高于世界平均水平的260%.无疑已经蕴含着比较明显的泡沫. 那么 ...
- Qt 5.6 5.8 vs2015 编译静态库版本(有全部的截图)good
安装Qt 去Qt官网下载Qt安装包 安装Qt和源码,一定要勾选source选项 添加bin到系统变量 工具 需要python3和 perl. vs2015 第三方工具,到官方下载安装 在命令行 ...
- 进程交互还可以使用QSharedMemory
官方例子: http://doc.qt.io/qt-5/qtcore-ipc-sharedmemory-example.html 查了一下,QSharedMemory没有自带任何信号.我的想法: 1. ...
- Delphi编写系统服务:完成端口演示
在开发大量Socket并发服务器,完成端口加重叠I/O是迄今为止最好的一种解决方案,下面是简单的介绍: “完成端口”模型是迄今为止最为复杂的一种I/O模型,特别适合需要同时管理为数众多的套接字,采 ...
- RoboVM 1.1 发布,Java 转原生平台代码
分享 <关于我> 分享 [中文纪录片]互联网时代 http://pan.baidu.com/s/1qWkJfcS 分享 <HTML开发MacOSAp ...
- kubernetes实战篇之windows添加自签ca证书信任
系列目录 由于服务端设置了https访问,因此如果通过浏览器访问时会提示证书不被信任,但是仍然可以通过处理继续访问.但是在自动化环境中,都是通过命令来请求的,这样不受信任的https就会报错误,这样我 ...
- 【webAssembly系列】webAssembly初探究竟
一.前言 自从JavaScript诞生开始,到现在开始变成流行的编程语言,背后的是web发展所推动的.web应用的变得更多更复杂,但是渐渐暴露出JavaScript的问题: (1)语法太灵活导致开发大 ...