using System.Data;
using System.Data.SqlClient;
//先打开两个类库文件
SqlConnection con = new SqlConnection(); con.ConnectionString = "server=.;database=stu;uid=sa;pwd=sa";

连接字符串,也可以

con.ConnectionString = ConfigurationManager.ConnectionStrings["xxx"].ConnectionString;

配合在web.config中配置实现

<ConnectionStrings>

<add name="xxx"

connectionString="Data Source=000.000.000.000;Initial Catalog=xxx;User ID=xxx;Password=xxx; pooling=true;"
providerName="System.Data.SqlClient"/> <ConnectionStrings>

然后打开连接

con.Open();

接下来根据操作不同SqlDataAdapter和SqlCommand二选其一

ado.net数据访问有两种方式:

1.离线--通过DataSet,然后离线增,删,改,最后通过SqlDataAdapter解 析到数据库中

DataSet是离线的,而SqlDataAdapter是连接DataSet和数据库的桥梁,所有对DataSet的操作(填充,更新等)都要通过他。

即SqlDataAdapter+DataSet访问数据库

2.直接对数据库操作SqlCommand (Update,Insert,Delete)

二者之间的详细区分如下:

SqlCommand是命令,可以用它来执行SQL命令

SqlDataAdapter是数据适配器,是用于在数据源(数据库)和数据集(DataSet)之间通讯的一组对象

SqlCommand对应DateReader

SqlDataAdapter对应DataSet

SqlCommand是C#中与Sql数据库打交道的对象,几乎所有的Sql数据库操作都需要使用该对象来实现,但其功能有限,只是简单的实现了与Sql数据库的接口而已;

SqlDataAdapter是一个功能强大的SqL数据适配器,也用于操作Sql数据库,但它的操作都要通过SqlCommand来实现(有一个属性对象的类型就是SqlCommand),也就是说,可以把SqlDataAdapter看作是一个把一些特殊功能封装了、增强了的SqlCommand

SqlCommand与ADO时代的Command一样,SqlDataAdapter则是ADO.NET中的新事物,它配合DataSet来使用。

DataSet就像是驻留在内存中的小数据库,在DataSet中可以有多张DataTable,这些DataTable之间可以相互关联,就像在数据库中表关联一样

SqlDataAdapter的作用就是将数据从数据库中提取出来,放在DataSet中,当DataSet中的数据发生变化时,SqlDataAdapter再将数据库中的数据更新,以保证数据库中的数据和DataSet中的数据是一致的

如果只需要执行SQL语句,就没必要用到DataAdapter ,直接用SqlCommand的Execute系列方法就可以了。

sqlDataadapter的作用是实现Dataset和DataBase之间的桥梁:比如将对DataSet的修改更新到数据库。

SqlDataAdapter的UpdateCommand的执行机制是:
当调用SqlDataAdapter.Update()时,检查DataSet中的所有行,然后对每一个修改过的Row执行SqlDataAdapter.UpdateCommand
也就是说如果未修改DataSet中的数据,SqlDataAdapter.UpdateCommand不会执行。

例如使用SqlDataAdapter 对象,一般就要用于填充DataSet:

 con.Open();
DataSet ds = new DataSet();
try
{
SqlCommand cmd = new SqlCommand(sql, Connection);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
sda.Fill(ds);
}
catch (Exception e)
{ }
finally
{
con.Close();
}

例如SqlDataReader 对象, 用于执行对数据库的直接一次性操作

using (SqlConnection con = new SqlConnection(s))
using (SqlCommand command = new SqlCommand("select * from xxx", con))
{
con.Open();
command.Parameters.Add("@u", SqlDbType.Char).Value = uuu;
SqlDataReader reader = command.ExecuteReader();
while(reader.Read())
{
Console.WriteLine(reader["字段名"].toString());
.......
}
}

最后关闭连接

con.Close();

C#-Database-连接的更多相关文章

  1. Intellij Idea 配置database 连接SQL Server 2012

    首先确认通过TCP IP来连接连接SQLServer 2012     确保 Server Authentication选择了SQL Server and Windows Authentication ...

  2. phpstorm利用database连接mysql数据库

    首先声明一点,database只能连接一个已存在的数据库,不能创建数据库 连接一个已存在的数据库步骤: 1,找到database:连续点击俩次shift,输入database就能找到了 2,点击绿色的 ...

  3. IntelliJ IDEA集成工具Database连接MySQL8.0报错的解决方法

    直接用默认配置连接的话,会报以下错误: Connection to MySQL - @localhost failed. [08001] Could not create connection to ...

  4. pycharm的Database连接新的Mysql5.7报错[08001]

    在URL的后面增加参数: ?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC 解决. 原因是虽然mysql5.7的s ...

  5. PowerDesigner连接MySQL,建立逆向工程图解

    传说中,程序员们喜欢用powerDesign进行数据库建模.通常都是先设计出物理模型图,在转换出数据库需要的SQL语句,从而生成数据库.但,江湖中流传着"powerDesign逆向工程&qu ...

  6. Oracle Standby Database 实现方案

    Oracle Standby Database 实现方案  From: http://wanow.blog.hexun.com/4672755_d.html 字号:大 中 小 版本:V20060328 ...

  7. Delphi 7连接MySql 5.5.15

    原文:http://blog.csdn.net/akof1314/article/details/6822902/ 网上有很多关于Delphi连接MySql数据库的文章,在这里,我只记录下自己测试过的 ...

  8. Java连接MySQl数据库实现代码

    1. 获取数据库连接和查询代码 package connectionmysql; import java.sql.Connection; import java.sql.DriverManager; ...

  9. php中数据库服务器连接类库文件的编写

    <!--数据库服务器连接类库文件的编写--> <?php class mysql{ //连接服务器.数据库以及执行Sql语句的类库 public $database; public ...

  10. How do I copy SQL Azure database to my local development server?(如何将Azure 中的数据库备份到本地)

    Now you can use the SQL Server Managerment Studio to do this: Connect to the SQL Azure database. 通过 ...

随机推荐

  1. mybatis出现无效的列类型

    package com.webapp.hanqi.test; import java.util.Date; import org.junit.jupiter.api.AfterEach; import ...

  2. mysql学习笔记--数据库事务

    一.概念 1. 事务是一个不可分割的单元 2. 事务作为一个整体要么一起执行,要么一起回滚 二.事务操作 1. 开启事务 start transaction 或者begin [work] 2. 提交事 ...

  3. 区间求小于等于k的数字个数 hdu4177

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4417 题目意思给出一个序列,叫我们求一个区间里面小于等于k的数字个数. 这里面我用分块和主席树两种方法 ...

  4. UBuntu16.04 安装docker

    1.首先更新apt-get源,sudo apt-get update 2.再通过pip安装docker-compose 3.然后再安装docker.io,sudo apt install docker ...

  5. 【转】JRXlsExporter.setParameter常用参数说明

    net.sf.jasperreports.engine.JRExporterParameter. JASPER_PRINT 这个参数是net.sf.jasperreports.engine.Jaspe ...

  6. odoo KeyError

    one2many字段对应的表名不存在造成

  7. Vue+Webpack构建去哪儿APP_一.开发前准备

    一.开发前准备 1.node环境搭建 去node.js官网下载长期支持版本的node,采用全局安装,安装方式自行百度 网址:https://nodejs.org/zh-cn/ 安装后在cmd命令行运行 ...

  8. NOVO SOP (SOP简介及历史)

    SOP(Standard Operation Procedure),标准作业程序. 一.什么是SOP(标准作业程序) 所谓SOP,是 Standard Operation Procedure三个单词中 ...

  9. java之路 把1到100之间的数的偶数相加

    /** *把1到100之间的数的偶数相加 */ class Demo{ public static void main(String[] args){ int i =1; int sum = 0; d ...

  10. linux下安装srilm

    1.安装相关依赖库 a.c/c++ compiler:编译器gcc 3.4.3及以上版本   b.GNU make:构建和管理工程的工具,解释Makefile里的指令,描述了整个工程所有文件的编译顺序 ...