ADO.net基础学习总结
释放资源:凡是实现了idisposable借口的类都需要用using来释放资源
using()
{
}
连接数据库
- //创建数据库连接:
- using(SqlConnection conn=new SqlConnection("连接字符串"))//连接字符串
- {
- conn.open();//打开连接
- using(SqlCommand cmd =conn.CreateCommd())
- {
- cmd.CommadTest="sql 语句";
......
在线数据连接方式:
参数化查询:
- cmd.CommadText="select * from T_Student where name =@name add age=@age;"
- cmd.Parameters.add(new SqlParameter("@name", txtName.text));//给参数赋值
- cmd.Parameters.add(new SqlParameter("@age", Convert.ToInt32(txtAge.text)));//给参数赋值
ExcuteNonquery一般用于非查询语句(insert,delete,update)
- cmd.CommandText = "insert into T_a (name , age ) values (@name,@age);";
- cmd.Parameters.Add(new SqlParameter("@name", txtName.Text));
- cmd.Parameters.Add(new SqlParameter("@age", txtAge.Text));
- int count= cmd.ExecuteNonQuery();
- MessageBox.Show(count+"行受影响")
ExcuteScalar一般用与执行返回值只有一行一列的sql语句
- cmd.CommandText = "select age from T_a where Id=@id and name =@name;";
- cmd.Parameters.Add(new SqlParameter("@id", txtID.Text));
- cmd.Parameters.Add(new SqlParameter("@name", txtName.Text));
- try
- {
- string age = cmd.ExecuteScalar().ToString();
- MessageBox.Show(age);
- }
catch
{
MessageBox.Show("找不到匹配的值");
}
ExcuteReader用于sql查询语句,查询结果放在数据库中,占用服务器资源,返回类型为SqlDateReader类型
- cmd.CommandText = "select * from T_a;";
- SqlDataReader reader = cmd.ExecuteReader();
- while (reader.Read())
- {
- long id = reader.GetInt64(0);
- string name = reader.GetString(1);
- int age = reader.GetInt32(2);
- MessageBox.Show(id + "," + name + "," + age);
- }
离线数据连接方式:
Dataset查询结果读取到客户端本地,适合数据量较少的查询
- cmd.CommandText = "select * from T_a where name = @name;";
//参数化查询
cmd.Parameters .Add (new SqlParameter("@name",txtName.Text));
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
//创建Dataset数据集
DataSet dataset = new DataSet();
//将查询结果填入Dataset中
adapter.Fill(dataset);
DataTable table = dataset.Tables[0];
DataRowCollection rows = table.Rows;
//遍历每一行的值
foreach (DataRow row in rows )
{
long id = (long)row["id"];
string name = (string)row["name"];
int age = (int)row["age"];
MessageBox .Show (id+","+name+","+age);
}
ADO.net基础学习总结的更多相关文章
- ADO.net基础学习总结(二)
将连接字符串放入配置文件中 1.添加一个“应用程序配置文件:app.config” <?xml version="1.0" encoding="utf-8" ...
- ADO.NET 基础学习笔记1
1. ODBC.OLEDB.ADO.ADO.NET之间的关系 ODBC: 开放数据库互连(ODBC)是MICROSOFT提出的数据库访问接口标准.ODBC(Open DatabaseConnectiv ...
- ADO.NET基础学习 二(Command对象)
②command对象用来操作数据库.(三个重要的方法:ExecuteNonQuery(),ExecuteReader(),ExecuteScalar()) ⑴以update(改数据)为例,用到Exec ...
- ADO.NET基础学习 一(连接数据库)
(记录下方便自己复习) 概念 简单地理解为用来连接数据库的类. 工作流程 ①Connection对象用来连接数据库. 两种连接方式:Windows身份验证 / sqlserver验证 private ...
- ADO.NET基础学习-----四种模型,防止SQL注入
1.ExcuteNonQuery 执行非查询语句,返回受影响的行数. // 1.ExcuteNonQuery string sqlconn = "Data Source=wss;Initia ...
- 如鹏网学习笔记(六)ADO.Net基础
ADO.Net基础 一.ADO.Net简介 1,程序要通过SQL语句自动化的操作数据库,必须要用一个类库, 类库要提供execute("insert into ...")/exec ...
- ADO.NET基础巩固-----连接类和非连接类
最近的一段时间自己的状态还是不错的,早上,跑步,上自习看书,下午宿舍里面编程实战,晚上要么练习代码,要么去打球(在不打就没机会了),生活还是挺丰富的. 关于C#的基础回顾就先到前面哪里,这 ...
- C#/.NET 基础学习
初识C# C#是微软公司发布的面向对象的.运行于.NET Framework之上的高级程序设计语言.与Java有着明显不同,借鉴Delphi的特点,与COM(组件对象模型)直接集成,是微软公司 .NE ...
- .Net Core 系列:2、ADO.Net 基础
目录: 1.环境搭建 2.ADO.Net 基础 3.ASP.Net Core 基础 4.MD5.Sha256.AES 加密 5.实现登录注册功能 6.实现目录管理功能 7.实现文章发布.编辑.阅览和删 ...
随机推荐
- 利用boost获取时间并格式化
利用boost来获取当前时间又方便快捷,还不用考虑跨平台的问题. 1. 输出YYYYMMDD #include <boost/date_time/gregorian/gregorian.hpp& ...
- CSS筛选器简单实例1
1.通配符 <!--筛选器---通配符实例--> <!--支持IE7+ --> <style type="text/css"> *.all { ...
- Android系统,动态找出一个包下所有的类
最近在写一个android应用,由于针对不同机型功能很不同,为了隔离变化,希望将各项功能插件化,通过编译开关来控制不同版本的功能,而不是在代码中通过逻辑来判断. 我想了一个办法,用表驱动的方法,结合插 ...
- java之package与import
我就以package与import开始吧. package的作用其实就是c++的namespace的作用,防止名字相同的类产生冲突,只是实现的机制不一样,java编译器在编译时,直接根据package ...
- Spark2.0编译
Spark2.0编译 1 前言 Spark2.0正式版于今天正式发布,本文基于CDH5.0.2的Spark编译. 2 编译步骤 #2.1 下载源码 wget https://github.com/ap ...
- poj2774 Long Long Message(后缀数组or后缀自动机)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud Long Long Message Time Limit: 4000MS Me ...
- 愉快的开始 - 零基础入门学习Python000
愉快的开始 让编程改变世界 Change the world by program 为什么是Python 既然有各种各样的编程语言可以选择,小甲鱼为什么极力鼓励大家来学习Python呢? 跨平台哦亲 ...
- Super Jumping! Jumping! Jumping!(hdu 1087 LIS变形)
Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 ...
- 玩转Firefox侧栏
偶然看到煎蛋网的"玩转firefox侧栏",才注意到它. Firefox侧栏有啥不一样? Firefox可以在侧栏中打开网页. 于是,一系列玩法就出来了... 侧栏打开在线应用 G ...
- 利用ICommand和ITool重写Arcengine中控件的事件
Arcengine窗体开发中,不同命令或者工具可能会触发同一控件的同一事件,这样会造成该事件中代码的混乱.以主窗体的AxMapcontrol控件为例,当开始画图时因为有很多种类型的Feature,所以 ...