C#学习笔记之五(ADO.net)

C51读写W25Q测试通过 电路: 最简单粗暴的: //管脚定义 sbit fwcs =P1^7; sbit fwsck =P5^4; sbit fwsi =P5^5; sbit fwso =P1^6; //spi模拟写 void w25wspi(uchar dat) { uchar i; for(i=0;i<8;i++) { if(dat & 0x80) { fwso=1; } else {... 阅读详情

ADO.net
 //Overview
 Data-->DataReader-->Data Provider--> DataSet
 Data Provider: Connection, Command, DataAdapter
 DataSet: DataRelationCollection,
  DataTable collection(including DataTable))
 DataTable: DataRowCollection, DataColumnColl, ConstrainColl
 DataAdapter: retrieve data from DB, fill tables in DataSet


 //SQL Server .net data provider
 using System.Data
 using System.Data.SqlClient;
 ...
 string strConnection = "server=allan; uid=sa; pwd=; database=northwind";
 string strCommand = "Select productName, unitPrice from Products";
 SqlDataAdapter dataAdapter = new SqlDataAdapter(strCommand, strConnection);
 DataSet dataSet = new DataSet();
 dataAdapter.Fill(dataSet, "Products");
 DataTable dataTable = dataSet.Table[0];
 foreach(DataRow row in dataTable.Rows) {
  lbProducts.Items.Add(row["ProductName"]+"($" +row["UnitProice"] + ")");
 }
 
 //OLEDB Data provider
 using System.Data.OleDb;
 ...
 string strConnection = "provider=Microsoft.JET.OLEDB.4.0; data source=c://nwind.mdb";
 OleDbDataAdapter dataAdapter = ...
 
 //DataGrids
 using System.Data.SqlClient
 public class Form1: System.Windows.Forms.Form
 {
  private System.Windows.Forms.DataGrid dgOrders;
  private System.Data.DataSet dataSet;
  private System.Data.SqlClient.Sqlconnection connection;
  private System.Data.SqlClient.SqlCommand;
  private System.Data.SqlClient.SqlDataAdapter dataAdapter;
  
 private void Form1_Load(object sender, System.EventArgs e)
 {
  string connectionString = "server=allan; uid=sa; pwd=;database=northWind";
  connection = new System.Data.SqlClient.Sqlconnection(connectionString);
  connection.Open();
  dataSet = new System.Data.DataSet();
  dataSet.CaseSensitive = true;
  
  command = new System.Data.SqlClient.SqlCommand();
  command.Connection = connection;
  command.CommandText = "Select * from Orders";
  dataAdapter = new System.DataSqlClient.SqlAdapter();
  //DataAdapter has SelectCommand, InsertCommand, UpdaterCommand
  //and DeleteCommand
  dataAdapter.SelectCommand = command;
  dataAdapter.TableMappings.Add("Table", "Orders");
  dataAdapter.Fill(dataSet);
  ProductDataGrid.DataSource = dataSet.Table["Orders"].DefaultView;
  
  //Data Relationships, add code below
  command2 = new System.Data.SqlClient();
  command2.Connection = connection;
  command2.CommandText = "Select * form [order details]";   
  dataAdapter2 = new System.Data.SqlClient.SqlDataAdapter();
  dataAdapter2.SelectCommand = command2;
  dataAdapter2.TableMappings.Add("Table", "Details");
  dataAdatper2.Fill(dataSet);
  
  System.Data.DataRelation dataRelation;
  
  System.Data.DataColumn datacolumn1;
  System.Data.DataColumn datacolumn2;
  dataColumn1 = dataSet.Table["Orders"].Columns["OrderID"];
  dataColumn2 = dataSet.Table["Details"].Columns["OrderID"];
  dataRelation new System.Data.DataRelation("OrdersToDetails", dataColumn1, dataColumn2); 
  dataSet.Relations.Add(dataRelation);
  productDataGrid.dataSource = dataset.DefaultViewManger;
  productDataGrid.DataMember = "Orders"; //display Order table, it has mapping to Order Detail
 
 }  
 }

 //Update Data using ADO.net
 string cmd = "update Products set ...";
 ...
 //creat connection, comand obj
 command.Connection = connection;
 command.CommandText=cmd;
 command.ExecuteNonQuery();
 
 //Transaction 1.SQL Transaction 2. Connection Transaction
 
 //1. SQL Transaction
 //creat connection and command obj
 connnetion.open();
 command.Connection = conntection;
 command.CommandText ="<storedProcedureName>"; //SP has used transaction
 command.CommandType= CommandType.StoredProcedure;
 System.Data.SqlClient.SqlParamenter param;
 param = command.Parameters.Add("@ProductID", SqlDbType.Int);
 param.Direction = ParameterDirection.Input;
 param.Value = txtProductID.Text.Trim();
 ... //pass all parameter need by StoredProcedure
 command.ExecuteNonQuery();
 
 //2. Connection Transaction
 //create connection and command obj
 ...
 System.DataSqlClient.SqlTransaction transaction;
 transaction = connection.BeginTransaction();
 command.Transaction = transaction;
 command.Connection = connection;
 try
 {
 command.CommandText="<SP>"; //this SP has no transaction in it
 command.CommandType = CommandType.StoredProcedure;
 System.DataSqlClient.SqlParameter param;
 ..
 }
 catch (Exception ex)
 { 
  //give Err message
  transaction.Rollback();
 }
 
 //Update DataSet, then update DB at once
 //create connection, command obj, using command.Transaction
 ...
 param = command.Parameters.Add("@QupplierID", SqlDbType.Int);
 param.Direction = ParameterDirection.Input;
 param.SourceColumn = "SupplierID";
 param.SourceVersion = DataRowVersion.Current; //which version
 try
 { //ADO.net will loop each row to update DB
  int rowsUpdated = dataAdapter.Update(dataSet, "Products");
  transaction.Commit();
 }
 catch
 {
  transactrion.Rollback();
 }
 
 
 // Concurrency Update Database
 //compare will original data, avoid conflict
 //Give SQL SP, both Original and Current Data as parameter
 //SQL will write like this: update ... where ... SupplierID = @OldSupplierID

 //original version
 param = command.Parameters.Add("@OldSupplierID", SqlDbtype.Int);
 param.Driection = ParameterDiretion.Input;
 param.SourceColumn ="SupplierID";
 param.SourceVersion = DataRowVersion.Original;
 //current version
 param = command.Parameters.Add("@SupplierID", SqlDbtype.Int);
 param.Driection = ParameterDiretion.Input;
 param.SourceColumn ="SupplierID";
 param.SourceVersion = DataRowVersion.Current;

 //SqlCommandBuilder
 SqlCommandBuilder bldr = new SqlCommandBuilder(dataAdapter);
 dataAdapter.UpdateCommand = bldr.GetUpdateCommand();
 dataAdapter.DeleteCommand = bldr.GetDelteCommand();
 dataAdapter.InsertCommand = bldr.GetInsertCommand();
 try
 {
  //This need not SQL, for bldr has build it for us.
  int rowsUpdated = dataAdapter.Update(dataSet, "Products");
 }   
 catch {}

FPGA———任意时间的定时器 FPGA编写定时器代码 阅读详情

相关推荐

SAP MM委外加工保姆级教程:从BOM配置到MIGO发货的完整避坑指南

本文提供SAP MM模块中委外加工的完整操作指南,涵盖从BOM配置到MIGO发货的全流程。详细解析委外采购和工序委外两种模式,包括主数据配置、采购订单创建及物料移动等关键步骤,帮助用户规避常见错误,提升供应链管理效率。特别适合制造业企业实施SAP外包业务参考。

weixin_26905487的博客 484

如何在web.config里面写数据库的连接

1.你可以在WEB.CONFIG里写  用的时候 System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];2.可以写在global.aspx.cs里protected void Session_Start(Object sender, EventArgs e)  {   this.sqlConnectio

super_caibird的专栏 1313

BM25的简单计算实例

text{TF 部分} = \frac{1 \times (1.2+1)}{1 + 1.2 \times \left(1 - 0.75 + 0.75 \times \frac{4}{4.667}\right)}所以 ( 1 - b + b \cdot \frac{|D|}{\text{avgdl}} \approx 0.25 + 0.64275 = 0.89275 )D2 只包含一个词,得分最低。乘以 IDF(手机)( 0.8954 \times 0.4700 \approx 0.4208 )

andeyeluguo的博客 134

【GDCPC2024】【min_25筛】J.另一个计数问题

所以我们只需要用 min25筛 求出质数的和还有平方和就可以啦。考场上的思路和正解差远了,属实是反演学魔怔了。是在整除分块中求过的,可以直接用。注意,不要跑两遍,会T。那么,答案就可以转换成。

Brute♂force 1034

3^100的位数判断

3^100的位数判断

T_Y_F_的博客 851

如何理解美国定义的 10^24 次计算AI系统(FLOP与FLOPS)

FLOP(Floating-Point Operation):一次浮点运算(例如加法、乘法、乘加操作等)。10^24 次计算操作描述的是计算能力的规模,可以理解为执行10的24次方次浮点运算总量,不是指每秒的速度。在大模型训练和计算领域,我们通常用FLOPS()来度量计算能力。FLOPS 表示的是每秒可以执行的浮点运算次数,常用于衡量计算机或处理器的计算能力。比如1 TFLOPS 就表示每秒一万亿次(10^12 次)浮点运算。

ZHTQ1997的博客 2340

【Canvas与函数最值】求函数 y=(x^2+4)^0.5+((x-3)^2+25)^0.5 的最小值?

用数形结合法和Canvas图像法,分别求函数 y=(x^2+4)^0.5+((x-3)^2+25)^0.5 的最小值。

一念非凡 553

异或(^)运算

异或(^) a^b:将a和b都用2的从大到小的幂次的和来表示,然后将两者中相同的幂次数除去,最后将a和b剩余的幂次相加得到结果。 支持这种算法的基础: 异或运算,相同为0,不同为1。 一个二进制数可以写成多个二进制数相加的形式,将加数写成十进制后依然不会改变二进制数的大小。 举例: 96^25 96 : 1100000 ==> 1000000+100000 ==>64+32 25 : 11001 ==> 10000+1000+1 ==>16+8+1 96^25 = 64+

qq_44734036的博客 4638

将W25Q256换成W25Q128 QSPI出现读ID正常,但读写数据失败问题解决

W25Q256更换为W25Q128时出现读写失败问题,解决方法包括:1. 修改Flash尺寸参数为16MB(0X1000000);2. 调整地址位宽参数,将(3 << 4)改为(2 << 4);3. 在初始化函数中增加100ms延时(HAL_Delay(100))确保稳定。这些改动涉及QSPI配置调整,解决了读ID正常但读写数据失败的问题。

本博客分享软硬件一体化开发实战。硬件涵盖 PCB 设计、STM32 等 MCU 底层开发;软件包含 C++、Rust,Qt/QML、PyQt、Slint、TouchGFX、LVGL 各类 GUI 框架。方便软硬件开发者查阅学习。欢迎关注! 2607

欧盟 AI Act 明天开罚:10^25 FLOP 红线与开源豁免,你的模型在不在射程内?

不需要公开完整数据集,但需要"足够详细"的摘要——数据规模、来源类型、语言分布、是否包含个人信息。欧盟指南明确说:如果无法重新训练或去学习化,必须在版权政策和摘要里如实披露,不能沉默。很多团队卡在这一步是因为数据来源本身不干净——合规检查暴露的往往不是文档问题,而是数据治理问题。

deepseek23的博客 402

1154 Vertex Coloring (25 分)判断图的一边任意两个顶点颜色是否相同

A proper vertex coloring is a labeling of the graph’s vertices with colors such that no two vertices sharing the same edge have the same color. A coloring using at most k colors is called a (proper) k...

凡心所向,素履所往,生如逆旅,一苇以航 142

BM25(Best Matching 25)算法基本思想

BM25(Best Matching 25)是一种用于信息检索(Information Retrieval)和文本挖掘的算法,它被广泛应用于搜索引擎和相关领域。BM25 基于 TF-IDF(Term Frequency-Inverse Document Frequency)的思想,但对其进行了改进以考虑文档的长度等因素。

NLP工程化 8616

找出数组中两个只出现一次的数字;异或运算^的一个作用

【题 目】一个整型数组中除了两个数字外,其他的数字都出现两次。请找出这两个只在数组中出现一次的数字。要求时间复杂度O(n),空间复杂度O(1)。   【思 路】首先我们考虑一个稍微简单点的情况:如果这个数组中只有一个数字出现且仅出现一次,其他数字都出现两次,我们应该怎么样找出这个数字呢?我们题目说数字出现两次有什么深意呢?我们很容易联想到异或运算,因为任何一个数字和自身异或的结果为0;知道了这

happylife1527的专栏 1269

python中TypeError: unsupported operand type(s) for ^: 'float' and 'int'的理解(简单)

^ 在python的正确理解(初学者) 我在比较python中冒泡排序与选择排序的时间长短与及稳定性时,编了一段用于计算平均值,间距和方差的程序。 代码如下: i=eval(input(":"))#给出数据个数 list1=[] for x in range(0,i): list1.append(eval(input()))#输入数据 list2=[] for n in range(0,i...

chundongg的博客 6万+

求具有abcd=(ab+cd)^2性质的四位数。(^2表示平方) 例如:2025=(20+25)^2

求具有abcd=(ab+cd)2性质的四位数。(2表示平方) 例如:2025=(20+25)^2 **输出提示信息:“There are following numbers:\n” **输出格式要求:"%d "(注意%d后面有两个空格) 程序运行示例如下: There are following numbers: 2025 30** 98**(注:因答案只有一个,为避免漏题,后两位用*替代) #include <stdio.h> #include <math.h> int ma

qq_55997682的博客 7861

任何一个正整数都可以用2的幂次方表示:137=2^7+2^3+2^0

一、题目描述 例如: 137=27+23+20,同时约定几次方用括号来表示,即ab可表示为a(b),由此可知,137可表示为: 2(7)+2(3)+2(0),进一步: 7=22+2+20 (2^1用2表示) 3=2+2^0.所以最后137可表示为: 2(2(2)+2+2(0))+2(2+2(0))+2(0). 又如: 1315=2^ 10+28+25+2+1.所以1315最后可表示为: 2(2(2...

yo_u_niverse的博客 1万+

【高中数学/函数/幂函数、指数函数】已知:a=2^4/3,b=4^2/5,c=25^1/3,求:a,b,c三者的大小关系?(2023年全国III卷)

使用幂函数和指数函数的知识解决问题:“已知:a=2^4/3,b=4^2/5,c=25^1/3,求:a,b,c三者的大小关系”,并用Canvas绘图验证之。

一念非凡 689

题目:整除25

整除25

paco301的博客 328

061、LQR(线性二次型调节器)控制基础

本文介绍了LQR(线性二次型调节器)控制在飞控系统中的应用。作者通过一次四旋翼炸机事故引出PID控制的局限性,详细讲解了LQR的数学原理、权重矩阵的物理意义以及实际工程实现方法。文章对比了LQR与PID的控制效果,指出LQR在鲁棒性方面的优势,同时也分析了其存在稳态误差等缺点。最后总结了LQR在飞控中的适用场景,建议将LQR与PID结合使用,并预告了下一章将讨论带积分项的LQI控制。全文包含具体案例、代码实现和调参经验,为飞控算法开发者提供了实用指导。

2401_88858637的博客 702

STM32H7x3_参考手册_第一版_中文.pdf

STM32H7x3_参考手册_第一版_中文

上一篇: 透析ICMP协议(一): 协议原理
下一篇: C#学习笔记之一(basic, class, function,array, collection interface)
bugfree
博客等级 码龄24年 1粉丝 19原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值