C操作SQL数据库
" 本篇文章主要讲解一下使用C#语言来对SQL数据库进行【添加数据】【查询数据】【删除数据】【更新数据】相关操作 "
01
—
创建连接对象
1)引用命名空间 using System.Data.SqlClient;
2)连接创建的数据库,在程序加载的时候进行连接//存放数据库数据源 string strMyConnectoion = "Data Source=DESKTOP-U6V69B6;Initial Catalog=2022_Karl;Integrated Security=True"; SqlConnection myConnection;//数据库连接对象 private void Form1_Load(object sender, EventArgs e) { //创建数据库连接对象 myConnection = new SqlConnection(strMyConnectoion); }
02
—
数据写入
在相应的输入栏里输入数据,点击【添加数据】即可将数据添加到表内
以下为源代码:private void btnAdd_Click(object sender, EventArgs e) { bool res = false; try { //打开数据库 myConnection.Open(); //实例化命令对象 SqlCommand myCommand = new SqlCommand(); //把要操作的数据库传过来 myCommand.Connection = myConnection; //操作类型为文本类型 myCommand.CommandType = CommandType.Text; // myCommand.CommandText = @"insert into studentList(学号,姓名,年龄,性别,地址) values(@学号,@姓名,@年龄,@性别,@地址)"; myCommand.Parameters.Add (new SqlParameter("@学号", textBox_ID.Text)); myCommand.Parameters.Add (new SqlParameter("@姓名", textBox_Name.Text)); myCommand.Parameters.Add (new SqlParameter("@年龄", textBox_Age.Text)); myCommand.Parameters.Add (new SqlParameter("@性别", textBox_Sex.Text)); myCommand.Parameters.Add (new SqlParameter("@地址", textBox_Addr.Text)); //提交数据 myCommand.ExecuteNonQuery(); //关闭数据库 myConnection.Close(); res = true; } catch (Exception ex) { MessageBox.Show(ex.ToString()); myConnection.Close(); } if (res) { MessageBox.Show("添加成功"); } }
03
—
数据查询
点击【查询数据】,可以看到表内数据被成功显示出来了
以下为源代码:private void btnFind_Click(object sender, EventArgs e) { //select * from 表名 查询整个表 //select 条件 from 表名 按条件查询表格 try { //打开数据库 myConnection.Open(); //实例化命令对象 SqlCommand myCommand = new SqlCommand(); //把要操作的数据库传过来 myCommand.Connection = myConnection; //操作类型为文本类型 myCommand.CommandType = CommandType.Text; //命令格式,代表查询全部 myCommand.CommandText = @"select * from studentList"; //创建DataAdapter对象 SqlDataAdapter sda = new SqlDataAdapter(myCommand); //创建DataSet对象 DataSet ds = new DataSet(); //将studentList这张表填充到DataSet数据集中 sda.Fill(ds, "studentList"); //将studentList这张表显示到控件上 dataGridView1.DataSource = ds.Tables["studentList"].DefaultView; //关闭数据库 myConnection.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); myConnection.Close(); } }
04
—
按条件查询
在按姓名查询栏输入karl,点击【按姓名查询】可以看到符合条件的数据被筛选出来了
以下为源代码:private void btnCdtFind_Click(object sender, EventArgs e) { //select * from 表名 -查询整个表 //select 列名 from 表名 where 列 运算符 值 -按条件查询表格 try { //打开数据库 myConnection.Open(); //实例化命令对象 SqlCommand myCommand = new SqlCommand(); //把要操作的数据库传过来 myCommand.Connection = myConnection; //操作类型为文本类型 myCommand.CommandType = CommandType.Text; //命令格式,代表按姓名查询 myCommand.CommandText = @"select * from studentList where 姓名 =@姓名"; myCommand.Parameters.Add(new SqlParameter("@姓名", textBox_Cdt.Text)); //开始查询 int res =Convert.ToInt32(myCommand.ExecuteScalar()); //如果查询不到,报错 if (res == 0) { throw new Exception("查无此人"); } //创建DataAdapter对象 SqlDataAdapter sda = new SqlDataAdapter(myCommand); //创建DataSet对象 DataSet ds = new DataSet(); //将studentList这张表填充到DataSet数据集中 sda.Fill(ds, "studentList"); //将studentList这张表显示到控件上 dataGridView1.DataSource = ds.Tables["studentList"].DefaultView; //关闭数据库 myConnection.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); myConnection.Close(); } }
05
—
删除数据
1)点击【查询数据】查看表内数据
2)在按姓名删除栏输入karl,点击【按姓名删除】在弹出的窗口点击【确定】
3)再次点击【查询数据】可以发现姓名为karl的数据已经被删除了
以下为源代码:private void btn_Del_Click(object sender, EventArgs e) { //删除语法 //delete from 表名 where 条件 try { //打开数据库 myConnection.Open(); //实例化命令对象 SqlCommand myCommand = new SqlCommand(); //把要操作的数据库传过来 myCommand.Connection = myConnection; //操作类型为文本类型 myCommand.CommandType = CommandType.Text; //命令格式,代表按姓名查询 myCommand.CommandText = @"delete from studentList where 姓名 =@姓名"; myCommand.Parameters.Add(new SqlParameter("@姓名", textBox_Del.Text)); //开始查询 int res = Convert.ToInt32(myCommand.ExecuteNonQuery()); //如果查询不到,报错 if (res == 0) { throw new Exception("查无此人"); } MessageBox.Show("删除成功"); myConnection.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); myConnection.Close(); } }
06
—
将修改后的值保存到数据库
1)原来的性别栏下面的数据是男
2)将性别由男改为女,按回车,在弹出的提示对话框中点击【确定】
3)点击【确定】
4)点击【查询数据】,可以看到性别栏的原来的男被改成了女
以下为源代码://定义一个object类型的变量用来存储修改之前的数据 object cellTempValue = null; //修改之前的数据 private void dataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) { //将编辑的之前的数据存到cellTempValue变量中 cellTempValue= this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value; } //修改之后的数据 private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e) { //更新语法 //update 表名 set 列名=值 where 条件 //如果修改前的值与修改后的值相等,直接返回不做任何操作 if (object.Equals(cellTempValue, this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value)) { return; } //如果选择取消,将修改后的值还原 if (MessageBox.Show("是否确定修改,并更新到数据库", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK) { this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = cellTempValue; return; } //如果选择确认,将修改后的值更新到数据库 try { //打开数据库 myConnection.Open(); //实例化命令对象 SqlCommand myCommand = new SqlCommand(); //把要操作的数据库传过来 myCommand.Connection = myConnection; //操作类型为文本类型 myCommand.CommandType = CommandType.Text; //命令格式 string strSql = String.Format( "update studentList set {0}="{1}" where 学号="{2}"", this.dataGridView1.Columns[e.ColumnIndex].HeaderText,//当前选择的列名 this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value,//选中单元格修改后的值 this.dataGridView1.Rows[e.RowIndex].Cells[0].Value//选中单元格修改前的值 ) ; //命令格式 myCommand.CommandText = strSql; //语句执行 int res = myCommand.ExecuteNonQuery(); if (res == 0) { throw new Exception("修改失败"); } else { MessageBox.Show("修改成功"); } myConnection.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); myConnection.Close(); } }
苦逼的自动化同胞们,加油!加油!加油!你离成功就差 点个赞 了,^_^
爱奇艺被7年老粉告了日前,视频平台爱奇艺因为限制投屏一事,引起了诸多网友们的不满,被推上了风口浪尖,甚至还被上海市消保委点名批评。据现代快报报道,广东一名用户因此将爱奇艺告上法庭,北京市互联网法院已于
AI的另类天赋制造和传播谎言1月23日,美国微软公司宣布开启与在线聊天机器人ChatGPT开发者OpenAI合作的第三阶段,向后者提供数十亿美元的长期投资。图片来源视觉中国综合编译贾晓静人工智能(AI)已经在
李想炮轰小鹏P7灯语设计纯种杀马特一向心直口快的理想汽车创始人李想最近又语出惊人,炮轰小鹏汽车产品设计走的是杀马特风格。日前,有网友发布了一段路遇小鹏P7的视频,视频中,车辆贯穿式LED日行灯不断闪烁亮起,灯光效果
立春到,元宵闹,这几个宝宝有点闹(通讯员谢靖)0000元宵伊始,静谧的妇产科病房,医生!医生!我女儿要生了一声疾呼打破夜的安静,一位妈妈搀扶着大肚子的女儿送到武汉科技大学附属天佑医院(同济天佑医院)妇产科,医生询
你知道吗?立春不立阳,一年都白忙!2月4日是立春节气,也是二十四节气中第一个节气,预示着春天的到来。从中医养生保健的角度讲,春天是阳气生发的季节,因此立春也是一年中最适合养阳气的时候。俗话说,立春不养阳,一年都白忙
立春之后,有钱没钱,多给家人喝这汤,营养易消化,不懂吃太亏了头条创作挑战赛二月到,立春将至,我们马上要迎来春天,春天的气息越来越强烈,最近气温有所回升,小区的花草都生长旺盛,花儿也开花了,感受到大自然的勃勃生机。天气突然转暖了,立春来临的时
CBA名将实名举报市篮协主席!索贿6位数威胁家人安全,姚明难堪中国体坛意外频频!前有原中国男足主教练李铁指导涉嫌违规被带走,连带着已经有20多人被调查。其中包括足协秘书长刘奕和足协领导陈永亮两位高管。随后篮坛也被暴雷。前中国篮协副主席李亚光涉
可爱萝莉纳西妲本期攻略给大家带来了纳西妲这名角色的养成思路,养成思路可以帮助大家制订自己的小草神养成计划帮助大家理解纳西妲的天赋与定位等特性,帮助大家开快速上手纳西妲的各类核心玩法,接下来让我们
一年之计在于春!立春这样养肝护阳气,开启健康新一年长沙头条湖南中医药大学第一附属医院泥牛鞭散六街尘,生菜挑来叶叶春。从此雪消风自软,梅花合让柳条新。宋王镃立春明天是立春节气,癸卯兔年,正月逢春,草木萌芽,万物复苏,自然界呈现出一派
李嘉欣和亲姐罕见亮相,她穿着年轻时髦,气场却输给素人姐姐女孩子们对印花元素的态度总是望而却步,喜欢的人认为印花能够充分展现女性的柔情与甜美,几乎想要将印花实现在每一件单品中。而不喜欢印花的人则认为容易显得笨重廉价,穿在身上很难衬托身材,
狂飙后遗症电视剧狂飙看完了,但是从看剧时候产生的怀疑,猜测,有时在现实生活中时不时地出现。安欣的师傅曹爽直到被老默从后背击毙时,我都认为是工伤!要不是他临死亲口对李响说自己的事,到死都没人怀