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

C# ADO.NET 操作学习记录

1、

string conStr = "Server = LAPTOP-T9JMQGJQ; User id = sa;Pwd= ;Database=erp_data;TrustServerCertificate=True";SqlConnection conn = new SqlConnection(conStr);

SqlConnection创建与SQL server的连接,
SqlConnection conn = new SqlConnection(conStr);
Constr为连接数据库相关配置字符串,
配置字符串中的TrustServerCertificate 是数据库连接字符串中的一个关键参数,主要用于控制客户端对服务器证书的验证行为。当设置为 true 时,客户端将跳过对服务器证书的验证,直接信任服务器提供的证书;若为 false(默认值),则要求服务器证书必须由受信任的证书颁发机(CA)签发,否则连接会失败。
(1)主要应用场景
‌测试环境‌:在开发或测试环境中,若使用自签名证书或无有效CA签发的证书,可通过启用此参数绕过证书验证,快速建立加密连接
(2)‌解决证书链不受信任的错误‌:当出现“证书链由不受信任的颁发机构颁发”等错误时,添加 TrustServerCertificate=true 可临时解决问题
‌与加密配置配合使用‌:通常需同时设置 Encrypt=true 以启用TLS加密,但跳过证书验证
(3)
注意事项
‌安全性风险‌:生产环境中不建议长期启用此参数,因其会降低通信的安全性,可能引发中间人攻击
‌语法规范‌:参数名称需正确拼写为 TrustServerCertificate,大小写不敏感但建议统一格式。
2、
SqlCommand 执行SQL语句存储过程带相关参数,使用SqlCommand.Parameters.Add; 以防止SQL语句注入攻击

   SqlCommand cmd = new SqlCommand();cmd.Connection = conn;cmd.CommandType = CommandType.StoredProcedure;cmd.CommandText = "PADD_TUESR";cmd.Parameters.Add("@FCODE", SqlDbType.VarChar, 6).Value = textBox1.Text;cmd.Parameters.Add("@FNAME",SqlDbType.VarChar,15).Value = textBox2.Text;

SqlCommand的常用方法说明:
ExecuteNonQuery
: 用于执行非Select命令,比如INSERT\DELETE\UPDATE命令,并返回命令所影响的数据行数。
ExecuteScalar: 用于执行SELECT 查询命令,返回数据行中第一行第一列的值,通常用来执行那些用到Count或SUM函数的SELECT命令。
ExecuteReader:执行SELECT 命令,并返回一个DataReader对象,这个DataReader对象是一个只读向前的数据集。
3、DataReader对象是一个简单的数据集,他主要用于从数据源中读取数据,常用于检索大量数据。
**注意:**使用DataReader对象读取数据时,必须一直保持与数据的连接,所以也被称为连线模式。使用DatatReader对象读取数据之后,务必将其关闭,否则其所使用的Connection对象将无法再执行其它操作。
HasRows属性判断数据库中是否有数据。
FiledCount 获取当前行的列数。
Read 方法使DataReader对象前进到下一条记录。

SqlDataReader reader = cmdR.ExecuteReader();if (reader.HasRows){while (reader.Read()){richTextBox1.Text += "" + reader["FCODE"] + reader["FNAME"]+"\n";}}
using System.Data.SqlClient;
private void button1_Click(object sender, EventArgs e)
{string conStr = "Server = LAPTOP-T9JMQGJQ; User id = sa;Pwd= ;Database=erp_data;TrustServerCertificate=True";SqlConnection conn = new SqlConnection(conStr);SqlCommand cmd = new SqlCommand();cmd.Connection = conn;cmd.CommandType = CommandType.StoredProcedure;cmd.CommandText = "PADD_TUESR";cmd.Parameters.Add("@FCODE", SqlDbType.VarChar, 6).Value = textBox1.Text;cmd.Parameters.Add("@FNAME",SqlDbType.VarChar,15).Value = textBox2.Text;if (conn.State == ConnectionState.Closed){conn.Open();}if (Convert.ToInt32(cmd.ExecuteNonQuery()) > 0){label1.Text = "添加成功";}else{label1.Text = "添加失败";}conn.Close();SqlCommand cmdR = new SqlCommand();cmdR.Connection = conn;cmdR.CommandType = CommandType.Text;cmdR.CommandText = "SELECT * FROM TUSER";if(conn.State == ConnectionState.Closed){conn.Open();}SqlDataReader reader = cmdR.ExecuteReader();if (reader.HasRows){while (reader.Read()){richTextBox1.Text += "" + reader["FCODE"] + reader["FNAME"]+"\n";}}reader.Close();conn.Close();SqlConnection sqlcon = new SqlConnection("server = LAPTOP-T9JMQGJQ; user id = sa; pwd=;Database = erp_data;TrustServerCertificate=True");sqlcon.Open();SqlDataAdapter sqlda = new SqlDataAdapter("SelecT * FROM TUSER",sqlcon);DataSet myds = new DataSet();sqlda.Fill(myds,"TUSER");
}
http://www.dtcms.com/a/392296.html

相关文章:

  • PIT 定时器寄存器配置
  • 算法代码讲座6:最小二乘法理论原理、典型案例与MATLAB实现
  • 【深入浅出】交叉熵损失函数——原理、公式与代码示例
  • Vue实现路由守卫
  • Coze源码分析-资源库-删除工作流-前端源码-核心接口
  • 安踏集团 X OB Cloud:新零售创新如何有“底”和有“数”
  • Web3艺术品交易应用方案
  • Spring 事务管理详解:保障数据一致性的实践指南
  • 软考中级-软件设计师 答题解题思路
  • Java IDEA学习之路:第二周课程笔记归纳
  • SQL语句一文通
  • Ubuntu22.04 双显卡系统使用集显 DRM 渲染的完整流程记录
  • Coze源码分析-资源库-删除工作流-后端源码-IDL/API/应用/领域
  • MySQL库和表的操作语句
  • python、类
  • NumPy高级技巧:向量化、广播与einsum的高效使用
  • GD32VW553-IOT 基于 vscode 的 msdk 移植(基于Cmake)
  • Filter 过滤器详解与使用指南
  • 养成合成小游戏抖音快手微信小程序看广告流量主开源
  • 在 Ubuntu 系统下安装 Conda
  • ac8257 android 9 SYSTEM_LAST_KMSG
  • ARM 架构与嵌入式系统
  • ARM(14) - LCD(1)清屏和画图形
  • Linux第十九讲:传输层协议UDP
  • 计算机网络学习(四、网络层)
  • 开启科学计算之旅:《MATLAB程序设计》课程导览
  • MATLAB | 数学模型 | 传染病 SIR 模型的参数确定
  • MATLAB基本运算(2)
  • 小红书数据分析面试题及参考答案
  • SpringCloudStream:消息驱动组件