当前位置: 首页 > news >正文

网站怎么被黑磁力蜘蛛

网站怎么被黑,磁力蜘蛛,基金网站建设,2022电商平台哪个值得做0820:数据库SqlHelper类 1_SqlHelper类 (1)SqlHelper是基于.NET Framework开发的数据库操作组件,主要通过封装ADO.NET对象(如SqlConnection、SqlCommand)简化数据库访问流程。该组件通过静态方法提供统一…

0820:数据库SqlHelper类

1_SqlHelper类

(1)SqlHelper是基于.NET Framework开发的数据库操作组件,主要通过封装ADO.NET对象(如SqlConnection、SqlCommand)简化数据库访问流程。该组件通过静态方法提供统一的数据访问模式,支持传入连接字符串和SQL参数快速执行数据库交互。

(2)SqlHelper类源码:有许多源码资源,可将源码复制到自己的项目中,创建工具类,直接调用类中的静态方法,,这边引用两个博主文章连接

微软原版(注释为英文):微软原版SQLHelper类 - 孤冢清风 - 博客园

中文注释版本:SqlHelper(带详细中文注释)-CSDN博客

(3)常用方法:

  • AssignParameterValues():主要负责给SQL参数赋值。

  • AttachParameters():主要把SQL参数和SqlCommand绑定在一起。核心代码:cmd.Parameters.Add()

  • CreateCommand():主要负责创建SqlCommand实例的。核心代码:SqlCommand cmd=new SqlCommand(sql,conn);

  • SqlHelperParameterCache:此类缓存SQL参数,目的是让创建和使用SQL参数时性能有所提升。

  • PrepareCommand():创建SqlCommand,并给SqlCommand准备参数。

  • ExecuteDataset():执行SQL语句或存储过程,返回一个DataSet。

  • XXXTypedParams():主要是使用强类型的参数来处理SQL语句或存储过程,目的防止SQL注入,提高安全性。

  • ExecuteReader():执行SQL语句或存储过程,返回数据集(多行多列)。

  • ExecuteNonQuery():执行SQL语句或存储过程,返回影响行数。

  • ExecuteScalar():执行SQL语句或存储过程,返回一行一列。

  • FillDataset():执行SQL语句或存储过程,填充数据集。

(4)SqlCommand返回三种数据:

  • cmd.ExecuteNonQuery():影响行数

  • cmd.ExecuteReader():结果集

  • cmd.ExecuteScalar():一行一列

(5)使用示例

//1.引入命名空间
using Microsoft.ApplicationBlocks.Data;
//2.查询,返回表
private void BindDataSource()
{SqlParameter[] sqlParamaters = new SqlParameter[]{new SqlParameter("@StuName",SqlDbType.VarChar)};sqlParamaters[0].Value = $"%{txtStuName.Text}%";//查询所有string sql = "select * from Students where Isdelect=0";if (!string.IsNullOrWhiteSpace(txtStuName.Text)){sql += "and StuName like @StuName";}DataSet ds= SqlHelper.ExecuteDataset(connString, CommandType.Text, sql, sqlParamaters);dataGridView1.DataSource = ds.Tables[0];
}
//删除,返回影响行数
private void btnRemove_Click(object sender, EventArgs e)
{if(dataGridView1.SelectedRows.Count !=1){MessageBox.Show("请先选择一行进行删除");return;}DialogResult re= MessageBox.Show("确定要删除吗?", "确认", MessageBoxButtons.YesNo);if (re != DialogResult.Yes) return;int delId =(int)dataGridView1.SelectedRows[0].Cells["Id"].Value;SqlParameter[] sqlParameters = new SqlParameter[]{new SqlParameter("@Id",SqlDbType.Int)};sqlParameters[0].Value = delId;string sql = "delete from Students where Id=@Id";int row = SqlHelper.ExecuteNonQuery(connString, CommandType.Text, sql, sqlParameters);if (row == 1){BindDataSource();}
}
//增加与更新与删除类似,返回的都是影响行数,不过sql语句与SqlPAarameters数组不同

2_数据库中的删除

(1)数据库的删除分为两种:

  • 物理删除: 把数据从数据库中真正删除 执行delete from 语句

  • 逻辑删除: 数据没有真正从数据中删除 而是更改数据状态 执行 update语句

物理删除逻辑如上述删除代码;逻辑删除代码逻辑如下

private void btnRemove2_Click(object sender, EventArgs e)
{if (dataGridView1.SelectedRows.Count != 1){MessageBox.Show("请先选择一行进行删除");return;}DialogResult re = MessageBox.Show("确定要删除吗?", "确认", MessageBoxButtons.YesNo);if (re != DialogResult.Yes) return;int delId = (int)dataGridView1.SelectedRows[0].Cells["Id"].Value;SqlParameter[] sqlParameters = new SqlParameter[]{new SqlParameter("@Id",SqlDbType.Int),new SqlParameter("@Isdelect",SqlDbType.Bit)};sqlParameters[0].Value = delId;sqlParameters[1].Value = 1;string sql = "update Students set Isdelect=@Isdelect where Id=@Id";int row = SqlHelper.ExecuteNonQuery(connString, CommandType.Text, sql, sqlParameters);if (row == 1){BindDataSource();}
}

3_DataTable创建

(1)代码示例

//创建表 参数为表名
DataTable dt = new DataTable("Student");
//创建列(表头)参数1为列名,参数2为该列数据类型
DataColumn column1 = new DataColumn("Id", typeof(int));
DataColumn column2 = new DataColumn("Name", typeof(string));
DataColumn column3 = new DataColumn("Age", typeof(int));
//将列添加到dt中
dt.Columns.Add(column1);
dt.Columns.Add(column2);
dt.Columns.Add(column3);
Random ra= new Random();
//创建行、
for (int i = 0; i < 10; i++)
{DataRow row = dt.NewRow();row["Id"] = i + 1;row["Name"] = "张三" + i + "号";row["Age"] = ra.Next(10,40);//将行添加到dt中dt.Rows.Add(row);
}
dataGridView1.DataSource= dt;

(2)结果展示

http://www.dtcms.com/a/418919.html

相关文章:

  • nginx反向代理和负载均衡
  • 外贸seo外贸推广外贸网站建设外贸网站建设网站域名信息查询
  • 新广告法 做网站的python和c++学哪个好
  • 数据科学与数据分析:真正的区别是什么?
  • default-route-advertise always 概念及题目
  • Python爬虫实战:获取东方财富网CPI信息与数据分析
  • Filebeat写ElasticSearch故障排查思路(上)
  • 网站开发进度安排文档青岛关键词优化排名
  • C# TCP 服务端与客户端代码分析与补充
  • 族蚂建站郴州网站建设费用价格
  • 对象分配在哪块内存?
  • AI Agent智能体如何突破“听懂却做不好”困局?多模态技术打通全链路
  • 图卷积网络 (GCN)
  • JMeter中常用的配置优化
  • 网站怎样做优化调整深圳vi设计深圳vi设计公司
  • 做教育培训网站需要资质么网站对联广告图片
  • 《Muduo网络库:实现Channel通道以及Poller抽象基类》
  • 安全系统架构
  • 中国画廊企业网站模板thinkphp做视频网站
  • C++ 位运算 高频面试考点 力扣 268. 丢失的数字 题解 每日一题
  • 【展厅多媒体】解析VR虚拟驾驶实现多场景自由切换
  • 网站建设吉金手指专业11青海省高等级公路建设管局网站
  • 厦门北京网站建设公司怎样给一个公司做网站
  • 58.Nginx的反向代理和负载均衡
  • 阿里云函数计算 AgentRun 全新发布,构筑智能体时代的基础设施
  • 做营销型网站价格wordpress 考试系统
  • 黄金网站app视频播放画质选择人力资源网站建设计划书
  • 我国省级档案网站建设状况wordpress插件events
  • 【CSS】flex布局
  • 【论文阅读】具身人工智能:从大型语言模型到世界模型