C#学习笔记(6)——大项目增删改查

摘要:
注:1。有很多事情需要注意。首先,连接字符串str应该直接写在类中,否则每个按钮都应该写一次。操作结果:代码:1UsingSystem;2使用System.Collections.Generic;3使用System.ComponentModel;4使用系统数据;5使用系统图纸;6使用System.Linq;7使用System.Text;8使用System.Threading.Tasks;9使用System.Windows.Forms;10使用System.Data.SqlClient;1112namespace_03大型项目搜索13{14publicpartialclassForm1:Form15{16publicForm1()17{18InitializeComponent();1920}21stringster=“DataSource=.;InitialCatalog=mysql;IntegratedSecurity=True;”;2223privatevoidForm1_Load24{2526loadStudent;27}28///<summary>29///加载学生信息30///˂/summary<31////<paramname=“p”>p是删除标识符,0被删除,1未删除32publicvoidloadStudent33{34List<Student>list=newList<Student˃();3536using37{38con.Open();39stringsql=“selected,name,chinese,math,flag from myclasswhere flag=”+p;40using41{42using43{44if45{46while47{48Studentst=newStudent(); 第49名。Id=转换。ToInt32;第50页。名称=转换。ToString;第51页。中文=转换。ToString;第52页。数学=转换。ToString;第53页。Flag=转换。ToInt32;54列表。添加55}56}57}58}59}6061dgv.数据源=列表;62dgv.SelectedRows[0].Selected=false;63}64///65///添加学生信息66///67///68///69privatevoidbutton1_单击70{71intn=-999;72stringname=txtName.Text;73stringchinese=txtChinese.Text;74stringgmath=txtMath.Text;75stringsql=string.Format;76using77{78using79{80con.Open();81n=cmd.ExecuteNonQuery();82MessageBox.Show(n˃0?这是一个很好的例子?

说明(2017-5-28 11:35:39):

1. 需要注意的地方很多

2. 首先是连接字符串str要直接写在类里面,不然每个按钮里面都要写一遍。

3. 查询用到sqlDataReader等三个方法,其他增删改只用到sqlCommond和sqlConnection。

4. sqlConnection记得要open!

5. 其他的记不起来了,总之要经常练习!

运行结果:

C#学习笔记(6)——大项目增删改查第1张

代码:

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Drawing;
  6 using System.Linq;
  7 using System.Text;
  8 using System.Threading.Tasks;
  9 using System.Windows.Forms;
 10 using System.Data.SqlClient;
 11 
 12 namespace _03大项目查找
 13 {
 14     public partial class Form1 : Form
 15     {
 16         public Form1()
 17         {
 18             InitializeComponent();
 19 
 20         }
 21         string str = "Data Source=.; Initial Catalog=mysql; Integrated Security=True;";
 22 
 23         private void Form1_Load(object sender, EventArgs e)
 24         {
 25 
 26             loadStudent(0);
 27         }
 28         /// <summary>
 29         /// 加载学生信息
 30         /// </summary>
 31         /// <param name="p">p是删除标识,0删除,1未删除</param>
 32         public void loadStudent(int p)
 33         {
 34             List<Student> list = new List<Student>();
 35 
 36             using (SqlConnection con = new SqlConnection(str))
 37             {
 38                 con.Open();
 39                 string sql = "select id, name, chinese, math, flag from myclass where flag = " + p;
 40                 using (SqlCommand cmd = new SqlCommand(sql, con))
 41                 {
 42                     using (SqlDataReader reader = cmd.ExecuteReader())
 43                     {
 44                         if (reader.HasRows)
 45                         {
 46                             while (reader.Read())
 47                             {
 48                                 Student st = new Student();
 49                                 st.Id = Convert.ToInt32(reader["id"]);
 50                                 st.Name = Convert.ToString(reader["name"]);
 51                                 st.Chinese = Convert.ToString(reader["chinese"]);
 52                                 st.Math = Convert.ToString(reader["math"]);
 53                                 st.Flag = Convert.ToInt32(reader["flag"]);
 54                                 list.Add(st);
 55                             }
 56                         }
 57                     }
 58                 }
 59             }
 60 
 61             dgv.DataSource = list;
 62             dgv.SelectedRows[0].Selected = false;
 63         }
 64         /// <summary>
 65         /// 添加学生信息
 66         /// </summary>
 67         /// <param name="sender"></param>
 68         /// <param name="e"></param>
 69         private void button1_Click(object sender, EventArgs e)
 70         {
 71             int n = -999;
 72             string name = txtName.Text;
 73             string chinese = txtChinese.Text;
 74             string math = txtMath.Text;
 75             string sql = string.Format("insert into myclass(name,chinese,math,flag) values('{0}','{1}','{2}',0)", name, chinese, math);
 76             using (SqlConnection con = new SqlConnection(str))
 77             {
 78                 using (SqlCommand cmd = new SqlCommand(sql, con))
 79                 {
 80                     con.Open();
 81                     n = cmd.ExecuteNonQuery();
 82                     MessageBox.Show(n > 0 ? "操作成功!" : "操作失败!");
 83                 }
 84             }
 85             loadStudent(0);
 86 
 87             //MessageBox.Show("123");
 88         }
 89         /// <summary>
 90         /// 删除学生
 91         /// </summary>
 92         /// <param name="sender"></param>
 93         /// <param name="e"></param>
 94         private void btnDel_Click(object sender, EventArgs e)
 95         {
 96             int n = -999;
 97             string id = dgv.SelectedRows[0].Cells[0].Value.ToString();
 98             string name = dgv.SelectedRows[0].Cells[1].ToString();
 99             string chinese = dgv.SelectedRows[0].Cells[2].ToString();
100 
101             string sql = string.Format("update myclass set flag = 1 where id ={0}", id);
102             using (SqlConnection con = new SqlConnection(str))
103             {
104                 using (SqlCommand cmd = new SqlCommand(sql, con))
105                 {
106                     con.Open();
107                     n = cmd.ExecuteNonQuery();
108                     MessageBox.Show(n > 0 ? "操作成功!" : "操作失败!s");
109                 }
110             }
111             loadStudent(0);
112         }
113         /// <summary>
114         /// 选中一行,显示在修改框中
115         /// </summary>
116         /// <param name="sender"></param>
117         /// <param name="e"></param>
118         private void dgv_CellClick(object sender, DataGridViewCellEventArgs e)
119         {
120             lbId.Text = dgv.SelectedRows[0].Cells[0].Value.ToString();
121             txtUname.Text = dgv.SelectedRows[0].Cells[1].Value.ToString();
122             txtUchinese.Text = dgv.SelectedRows[0].Cells[2].Value.ToString();
123             txtUmath.Text = dgv.SelectedRows[0].Cells[3].Value.ToString();
124             
125         }
126 
127         private void btnUpdate_Click(object sender, EventArgs e)
128         {
129             int n = -999;
130             if (dgv.SelectedRows.Count>0)
131             {
132                 string sql = string.Format("update myclass set name = {0}, chinese = {1}, math = {2} where id = {3}", txtUname.Text,txtUchinese.Text,txtUmath.Text,lbId.Text);
133                 using (SqlConnection con = new SqlConnection(str))
134                 {
135                     using (SqlCommand cmd = new SqlCommand(sql,con))
136                     {
137                         con.Open();
138                         n = cmd.ExecuteNonQuery();
139                         MessageBox.Show(n>0?"操作成功!":"操作失败!");
140                     }
141                 }
142             }
143             else
144             {
145                 MessageBox.Show("请输入数据!");
146             }
147             loadStudent(0);
148         }
149     }
150 }

免责声明:文章转载自《C#学习笔记(6)——大项目增删改查》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇@SessionAttributes的覆盖与加入【转】C# typeof()实例详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

无密码远程桌面连接方法

无密码远程桌面的连接方法如下:1.设置为允许远程桌面访问。...

CSS hover伪类改变其他元素的样式

重要的一点,hover在父元素上,对子元素进行样式调整。也可以#firdiv:hover~.se改变所有同级的元素总结一下:hover对同级别的元素改变样式,改变的是相邻兄弟元素的样式,即一个元素的样式;对元素的子元素应用hover改变样式,可以同时起作用。利用伪类改变其他元素的样式,其他元素须是hover元素的子元素。...

java环境安装Firefox驱动/IE驱动

如果selenium版本是3.x的,需要使用驱动包解决办法:往项目中添加火狐驱动包,并加载驱动的配置。...

codeforces 765 F Souvenirs 线段树+set

问题的含义:多个查询的间隔中两个数字之差的绝对值的最小值:可以根据查询的l对脱机查询进行排序,并且可以从r到l进行反向查询,并且间隔i+1到n的每次更新都可以确保此更新不会影响下一次和后续更新。因为当两个区间相互覆盖时,具有较小l的区间的值必须小于或等于另一个区间,因此可以绘制一个图来理解。...

java android 读写西门子PLC数据,包含S7协议和Fetch/Write协议,s7支持200smart,300PLC,1200PLC,1500PLC

主要用于西门子PLC的M、Q、I、DB块的数据读写。该组件支持快速建立高性能Modbus TCP终端。对于日志记录,暂时只保留接口。具体来说,您可以为该组件支持的西门子通信实现两种协议。一种是S7协议,它几乎不需要PLC侧的参数配置。另一个是Fetch/Write协议,它有点麻烦。如果S7不方便阅读,您可以选择“获取/写入”。S7更方便。...

rz上传文件及出错解决方案

原始链接:https://blog.csdn.net/yjk13703623757/article/details/87083997单独使用rz命令时有两个问题:上载中断和文件更改。解决方案是使用rz be进行上传,并在弹出对话框中删除“UploadfilesasASCII”之前的复选框。如果使用不带参数的rz命令上传一个大文件,则在上传过程中通常会中断。很...