ADO.NET 之 三
2012-12-31 13:06 y-z-f 阅读(348) 评论(0) 编辑 收藏 举报
三、操作篇(1)
1.构造函数
1 // 1. 2 SqlCommand cmd = new SqlCommand(); //默认构造函数 3 /* 4 相关的默认值为以下: 5 CommandText : 空字符串 6 CommandTimeout : 30s 7 CommandType : CommandType.Text 8 Connection : NULL 9 */ 10 11 //2. 12 SqlCommand cmd = new SqlCommand( 13 "SELECT * FROM NORTHWND" //T-SQL语句 14 ); 15 16 //3. 17 using(SqlConnection con = new SqlConnection("...") ) 18 { 19 SqlCommand cmd = new SqlCommand( 20 "SELECT * FROM NORTHWND", //T-SQL语句 21 con //数据库连接实例 22 } 23 24 //4. 25 using(SqlConnection con = new SqlConnection("...") ) 26 { 27 SqlTransaction tr = con.BeginTransaction("NorthwndTransaction"); //创建事务 后面章节将会介绍 28 SqlCommand cmd = new SqlCommand( 29 "SELECT * FROM NORTHWND", //T-SQL语句 30 con, //数据库连接实例 31 tr //事务实例 32 ); 33 }
2.下面我们将介绍经常使用的属性和方法
2.1 设置或获取数据库连接实例
1 using( SqlConnection con = new SqlConnection("...") ) 2 { 3 SqlCommand cmd = new SqlCommand(); 4 cmd.Connection = con; //设置有关的数据库连接实例 5 }
2.2 设置或获取超时时间
1 using( SqlConnection con = new SqlConnection("...") ) 2 { 3 SqlCommand cmd = new SqlCommand(); 4 cmd.CommandTimeout = 45; //设置超时时间为45s 5 } 6 7 //注意: 0 表示无限等待 8 //在异步中忽略该参数
2.3 获取或设置一个值,只是CommandText的解释
1 using( SqlConnection con = new SqlConenction()) 2 { 3 SqlCommand cmd = new SqlCommand(); 4 cmd.CommandType = CommandType.StoredProcedure;//设置如何解释 CommandType 的解释 5 } 6 //默认为:CommandType.Text
2.4 获取或设置需要执行的T-SQL语句、表明或存储过程
1 using( SqlConnection con = new SqlConnection() ) 2 { 3 SqlCommand cmd = new SqlCommand(); 4 cmd.CommandText = "SELECT * FROM NORTHWND";//设置需要指定 T-SQL 语句、表名或存储过程 5 }
2.5 设置或获取 T-SQL 语句或存储过程的参数
1 using (SqlConnection connection = new SqlConnection("...")) 2 { 3 SqlCommand cmd = new SqlCommand(); 4 cmd.Connection = con; 5 cmd.CommandText = "UPDATE Sales.Store SET Demographics = @demographics " 6 + "WHERE CustomerID = @ID;"; 7 command.Parameters.Add("@ID", SqlDbType.Int);//增加一个参数 8 command.Parameters["@ID"].Value = customerID; //设置改参数的值 9 command.Parameters.AddWithValue("@demographics", demoXml);//增加并设置改参数的值 10 }
2.6 尝试取消 SqlCommand 的执行
1 using( SqlConnection con = new SqlConnection("...") ) 2 { 3 SqlCommand cmd = new SqlCommand(); 4 con.Open();
5 cmd.Connection = con; 6 cmd.CommandText = "SELECT * FROM NORTHWND"; 7 cmd.ExecuteReader();
8 cmd.Cancel(); //尝试取消执行 9 }
2.7 执行 T-SQL 语句并返回受影响的行
1 using( SqlConnection con = new SqlConnection("...") ) 2 { 3 SqlCommand cmd = new SqlCommand(); 4 con.Open();
5 cmd.Conenction = con; 6 cmd.CommandText = "UPDATE NORTHWND SET NAME = 'AD' WHERE ID = 1"; 7 int rows = cmd.ExecuteNonQuery(); //返回该语句执行后受影响的行数 8 }
2.8 执行 CommandText 并返回一个 SqlDataReader
1 using( SqlConnection con = new SqlConenction("..") ) 2 { 3 SqlCommand cmd = new SqlCommand(); 4 con.Open();
5 cmd.Connection = con; 6 cmd.CommandText = "SELECT * FROM NORTHWND"; 7 SqlDataReader reader = cmd.ExecuteReader(); //执行CommandText并返回一个 SqlDataReader 8 }
2.9 带参数的 ExecuteReader
1 using( SqlConnection con = new SqlConnection("...") ) 2 { 3 SqlCommand cmd = new SqlCommand(); 4 con.Open(); 5 cmd.Conencion = con; 6 SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); //当 reader 关闭时 con 也会关闭 7 }
该参数可选值如下:
CommandBehavior:
Default:默认
SingleResult:查询返回一个结果集
SchemaOnly:查询只返回列信息
KeyInfo:此查询返回列和主键信息
SingleRow:查询应返回一行
CloseConnection:当关联的 DataReader 关闭时,相关的数据库连接实例也关闭
2.10 返回结果集中的第一行第一列
1 ExecuteScalar();
上面已经介绍了常用的属性和方法,下面一节将会介绍更高级更深层次的.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?