操作sqlserver数据库常用的三个方法
1、 ADO.NET
-> 连接字符串,常用的两种方式:
server=计算机名或ip\实例名;database=数据库名;uid=sa;pwd=密码;
server=计算机名或ip\实例名;database=数据库名;integrated security=true;
-> 常用的类库
SqlConnection 连接数据库用
SqlCommand 执行SQL语句
SqlDataReader 读取的对象(此种读取数据的方式有点像StreamReader)
SqlAdapter 将数据库中的数据放入DataSet
DataSet 内存级别的离线数据库(有点像FileStream.Read)
对比模型


(图片来自网络,若是原文作者看到,请提供链接地址,时间很久远了.......)
-> 连接数据库的步骤
-> 写连接字符串
-> 创建连接对象,使用连接字符串
-> Open,打开数据库
-> 关闭释放数据库,可以使用using
2、执行SQL语句
-> 使用SqlCommand对象
-> 步骤:
-> 首先创建SQL语句字符串(sql)与连接通道SqlConnection(conn)
string sql = "insert into tbl(id, name) values(1, '123');"
SqlConnection conn = new SqlConnection(@"server=计算机名或ip\实例名;database=数据库名;uid=sa;pwd=密码;");
-> 创建SqlCommand对象,将sql与conn交给它(通过构造函数或属性)
SqlCommand cmd = new SqlCommand(sql, conn);
-> 在Open的情况下,调用方法(SqlCommand对象的方法)
conn.Open();
cmd.方法();
-> 常用的三个方法
ExecuteNonQuery() 专门执行非查询语句(增、删、改等),返回受影响行数
ExecuteScalar() 执行查询,返回的是结果中第一行第一列的数据(object)
ExecuteReader() 专门执行查询,可以获得多行多列的数据
3、 先创建一个表,插入数据
注意问题
-> sql语句如果在SSMS中执行没有问题在ADO.Net一般不会出现问题
-> 关于主键和自动增长
-> 连接字符串数据库的名字
-> 关于约束
异常处理
try
{
// 可能出现异常的代码
} catch(Exception ex) {
// 出现异常之后的代码
} finally
{
// 用来关闭连接
}
4、 ExecuteScalar()
-> 读取数据,获取第一行与第一列
-> 执行中除了SQL语句和执行方法不同流程都一样
5、-> 将SQL语句中的参数拼接修改一下
-> 凡是要用到参数的地方,都将这个变数,写成一个变量
-> 使用的时候为这个变量赋值即可
-> 实现步骤
-> 写SQL语句的时候,用"@别名"代替挖坑的地方
select COUNT(*) from tblLogin where logUid='{0}' and logPwd='{1}';容易sql注入漏洞攻击
select COUNT(*) from tblLogin where logUid=@logUid and logPwd=@logPwd;
-> 在ADO.Net中执行SQL语句前(cmd.方法()调用前)
-> 创建一个对象,SqlParameter
SqlParameter p = new SqlParameter(参数的别名, 参数的值);
SqlParameter p1 = new SqlParameter("@logUid", txtUid.Text.Trim());
SqlParameter p2 = new SqlParameter("@logPwd", txtPwd.Text);
-> 将参数加到cmd对象中
cmd.Parameters.Add(参数对象);
cmd.Parameters.Add(p1);
操作sqlserver数据库常用的三个方法的更多相关文章
- Oracle数据库备份与恢复的三种方法
转自blueskys567原文Oracle数据库备份与恢复的三种方法, 2006-10. 有删改 Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP).热备份和冷备份. 导出 ...
- 【EF】EntityFramework 更新数据库字段的三种方法
实体类 public class TestDbContext : DbContext { public DbSet<Test> Tests { get; set; } public Tes ...
- java数据库 JDBC操作MySQL数据库常用API 部门表和员工表 创建表 添加数据 查询数据
package com.swift.department; import java.sql.Connection; import java.sql.PreparedStatement; import ...
- Java连接并操作SQLServer数据库
本人只需在项目中引入sqljdbc4.jar 包即可 ----------------------------------------- 在JAVA中如何连接SQL Server数据库 - hangh ...
- sqlServer数据库常用连接字符串
sqlServer 数据库常用连接字符串 用户名和密码验证的方式去连接到数据库服务器 <add name="conStr" connectionString=" ...
- Entity Framework 数据库初始化的三种方法
在数据库初始化产生时进行控制,有三个方法可以控制数据库初始化时的行为.分别为CreateDatabaseIfNotExists.DropCreateDatabaseIfModelChanges.Dro ...
- MySQL数据库改名的三种方法
前不久去面试,被问到Innodb引擎的表如何改数据库名,当时我也只回答了MyISAM改如何操作,被一些细节问题打败,真是操蛋. 如果表示MyISAM那么可以直接去到数据库目录mv就可以. Innodb ...
- EntityFramework 更新数据库字段的三种方法
例: 实体类: public class TestDbContext : DbContext { public DbSet<Test> Tests { get; set; } public ...
- C#通过SqlConnection连接查询更新等操作Sqlserver数据库
Sqlserver数据库连接方式有多种,这里只介绍最常用的通过SqlConnection和Sqlserver数据库用户名和密码验证来进行操作数据库. 数据库连接字符串: string connStri ...
随机推荐
- GridView自定义分页
CSS样式 首先把CSS样式代码粘贴过来: .gv { border: 1px solid #D7D7D7; font-size:12px; text-align:center; } .gvHeade ...
- CSS 清除浮动的四种方法
在实际项目中,我们经常会用到float属性来对页面进行布局.当使用float时,意味着该元素已经脱离了文档流,相当于浮于文档之上,不占据空间.但是针对兄弟元素为文字内容时,会占据一定空间,从而产生文字 ...
- opencv2学习:计算协方差矩阵
图像的高级处理中,协方差矩阵计算是必不可少的,但opencv关于这方面的资料却相当少. 首先,利用matlab计算一下,便于比较: >> data=[1,2,3;10,20,30] dat ...
- Linux常用指令---kill | killall(终止进程)
kill Linux中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令.通常,终止一个前台进程可以使用Ctrl+C键,但是,对于一个后 ...
- 20155224聂小益 - 我的技能与C语言学习
20155224聂小益 - 我的技能与C语言学习 预备作业2 ● 你有什么技能比大多人(超过90%以上)更好? 我认为我可能有些技能身边有的人比较少有,但是要是超过90%以上我实在不敢保证.毕竟厉害的 ...
- nodeJs--模块module.exports与实例化方法;
在nodejs中,提供了exports 和 require 两个对象,其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象.而在e ...
- 移动APP为什么要开发两套Android和IOS-桥接模式
一.前言 现在用H5开发个 web app 多么方便,兼容两大系统Andriod和IOS.但是为什么许多公司还要开发原生的APP?开发原生的APP就需要开发两套一套运行在Andriod系统的,一套运行 ...
- Redis入门学习(一)——安装配置
最近马上要找实习了,听学长说他们公司里用了redis来解决缓存问题,在大三结束前来学习一下. 问:Redis是什么? 答:(官方)REmote DIctionary Server(Redis)是一个K ...
- sublime文档
英文http://docs.sublimetext.info/en/latest/index.html 翻译http://feliving.github.io/Sublime-Text-3-Docum ...
- angular-input
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...