SQL(2)---C#应用

ADO.NET中5大对象的概述

1---Connection对象:连接数据库。

(1)使用sa 登录

conn = new SqlConnection("Data Source=NEWLAND-PC;Initial Catalog=Srr1100U;User ID=sa;pwd=123456;"); conn.Open();

(2)使用windows本地登录

          conn = new SqlConnection("Data Source=NEWLAND-PC;Initial Catalog=Image;Integrated Security=True;"); conn.Open(); 

2---Command对象:执行T-SQL语句。

(1)ExecuteNonQuery()方法,执行增删改命令。返回受影响的行数!一

if (comm.ExecuteNonQuery() > 0) { MessageBox.Show("保存成功!"); }

(2)ExecuteReader()方法,返回一个DataReader对象。一般用于string类型

          GetConn();
          string select = "select COUNT( distinct Data) as num from Srr1100U";
          comm = new SqlCommand(select,conn);
          SqlDataReader MyData = comm.ExecuteReader();
          MyData.Read();
          this.txtHuman.Text = "人数:" + MyData["num"].ToString();

(3)ExecuteScalar()方法,返回首行首列。可以用于byte[]数组:

         GetConn();
         string select = "select Image  from CameraImage where ImageName=‘" + DataId + "‘";
         comm = new SqlCommand(select, conn);
         byte[] Mybyte = (byte[])comm.ExecuteScalar();

(4)SqlParameter[]参数,是DataSet的映射,可用来一次性更新大量的数据。

标准写法:

         string select = "insert Message(CardData,Name,Money,Tel) values (@CardData,@Name,@Money,@Tel)";
                    SqlParameter[] MySqlParameter = new SqlParameter[]
                    {
                        new SqlParameter("@CardData",MyCardData),
                        new SqlParameter("@Name",DataName),
                        new SqlParameter("@Money",DataMoney),
                        new SqlParameter("@Tel",DataTel)
                    };
                    comm = new SqlCommand(select, conn);
                    if (MySqlParameter != null && MySqlParameter.Length > 0)
                    {
                        foreach (SqlParameter p in MySqlParameter)
                        {
                            comm.Parameters.Add(p);
                        }
                    }
          if (comm.ExecuteNonQuery() > 0)
          {
                 MessageBox.Show("写入成功");
          }

简化写法:

          string select = "insert Message(CardData,Name,Money,Tel) values (@CardData,@Name,@Money,@Tel)";
                    comm = new SqlCommand(select, conn);
                    comm.Parameters.Add(new SqlParameter("@CardData", SqlDbType.NVarChar));
                    comm.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar));
                    comm.Parameters.Add(new SqlParameter("@Money", SqlDbType.NVarChar));
                    comm.Parameters.Add(new SqlParameter("@Tel", SqlDbType.NVarChar));
                    comm.Parameters[0].Value = MyCardData;
                    comm.Parameters[1].Value = DataName;
                    comm.Parameters[2].Value = DataMoney;
                    comm.Parameters[3].Value = DataTel;
         if (comm.ExecuteNonQuery() > 0)
                {
                    MessageBox.Show("写入成功");
                }

3---DataAdapter对象:数据适配器,从数据库中检索数据,再填充到本地数据集中。同时,我们可以利用DataAdapter,再将数据反向从DataSet中更新回数据库。

(1) DataAdapter的Fill方法,用于使用DataAdapter的SelectCommand的结果来填充DataSet。

         GetConn();         string select = "select * from CameraImage where ImageName=‘" + address + "‘";         MySqlDataAdapter = new SqlDataAdapter(select, conn);                      MyDataSet = new DataSet();         MySqlDataAdapter.Fill(MyDataSet);         MemoryStream MyMemoryStream = new MemoryStream((byte[])MyDataSet.Tables[0].Rows[0][2]);   

4---DataReader对象:是一个只向前的数据流。用于从数据源中检索只读数据集,并且必须有连接时才可以用。

  CommandBehavior.CloseConnection属性,关闭时同时关闭conn连接
          GetConn();
          string Myselect = "select COUNT(CardData) as num from dbo.Message";
          comm = new SqlCommand(Myselect, conn);
          SqlDataReader MySqlDataReader = comm.ExecuteReader(CommandBehavior.CloseConnection);
          if (MySqlDataReader .Read())
          {
              MessageBox.Show(read2["num"].ToString());
          }          read.Close();

5---DataSet对象:是ADO.NET的核心,相当于本地数据库,它与数据库无关的,它和远程数据库连接的桥梁就是.NET数据提供程序。它是由多个表构成,每个表都是一个DataTable对象。

         GetConn();
         string select = "select * from CameraImage where ImageName=‘" + address + "‘";
         MySqlDataAdapter = new SqlDataAdapter(select, conn);
         MyDataSet = new DataSet();
         MySqlDataAdapter.Fill(MyDataSet);
         MemoryStream MyMemoryStream = new MemoryStream((byte[])MyDataSet.Tables[0].Rows[0][2]);  //Tables表的标号,rows[行][列]
时间: 2024-10-28 13:13:15

SQL(2)---C#应用的相关文章

SQL查询字段添加括号报错:Operand should contain 1 column(s)

SQL语句:查询连个字段的信息 SELECT (menu_id,menu_captions) FROM bsdb.menulist a WHERE a.menu_id like ('2_'); 然后,因为这是在存储过程中的一个语句所以,在执行存储过程的时候编译不会报错,但是执行的时候却汇报错:Operand should contain 1 column(s):原因不好解释: 下面是官方发解释(MYSQL):https://dev.mysql.com/doc/refman/5.0/en/row-

SQL Server 2008的MSSQLSERVER 请求失败或服务未及时响应

我的是SQL server 2008R2, 以前可以正常的启动SQL server(SQLEXPRESS).SQL server(MSSQLSERVER),有几天没有打开了,就在昨天 开机之后就无法启动MSSQLSERVER了,提示的信息如下图: 快速解决办法如下: 第一步:打开事件查看器,查看windows日志,点击应用程序,查看windows错误日志 http://product.pconline.com.cn/itbk/software/win8/1211/3060037.html 第二步

【Kettle】4、SQL SERVER到SQL SERVER数据转换抽取实例

1.系统版本信息 System:Windows旗舰版 Service Pack1 Kettle版本:6.1.0.1-196 JDK版本:1.8.0_72 2.连接数据库 本次实例连接数据库时使用全局变量. 2.1 创建新转换:spoon启动后,点击Ctrl+N创建新转换 2.2 在新转换界面中,右键点击DB连接,系统会弹出[数据库连接]界面. windows系统环境下,可用${}获取变量的内容. 说明: 连接名称:配置数据源使用名称.(必填) 主机名称:数据库主机IP地址,此处演示使用本地IP(

sql常用格式化函数及字符串函数

一.常用格式化函数 1.日期转字符串 select to_char(current_timestamp, 'YYYY-MM-DD HH24:MI:SS') //2017-09-18 22:41:50 YYYY:年(4和更多位) MM:月份号(01-12) DD:一个月里的日(01-31) HH24:一天的小时数(00-23) MI:分钟(00-59) SS:秒(00-59) 2.字符串转日期 select to_date('2017-09-18','YYYY-MM-DD') //2017-09-

Bootstrap + AngularJS+ Ashx + SQL Server/MySQL

去年年底12月,为适应移动端浏览需求,花了1个月时间学习Bootstrap,并将公司ASP网站重构成ASP.NET. 当时采取的网站架构: Bootstrap + jQuery + Ashx + SQL Server 时间紧,没人带,只能硬着头皮,最后如期完成,但是也遗留了几个问题. 问题: 1.页面查询条件太复杂,太多的checkbox,jQuery操作DOM虽然方便,但是组合成json提交给后端还是比较麻烦,有没有天然支持json的前端框架或者脚本语言? html控件做的任何修改,都自动保存

Spark SQL 之 Join 实现

原文地址:Spark SQL 之 Join 实现 Spark SQL 之 Join 实现 涂小刚 2017-07-19 217标签: spark , 数据库 Join作为SQL中一个重要语法特性,几乎所有稍微复杂一点的数据分析场景都离不开Join,如今Spark SQL(Dataset/DataFrame)已经成为Spark应用程序开发的主流,作为开发者,我们有必要了解Join在Spark中是如何组织运行的. SparkSQL总体流程介绍 在阐述Join实现之前,我们首先简单介绍SparkSQL

PL/SQL developer 连接oracle数据库报错“initialization error could not load oci.dll”

声明:PL/SQL 版本:PL/SQL Developer 9.0.6 (http://files.allroundautomations.com/plsqldev906.exe) 报错提示如图: 原因:PL/SQL只对32位OS进行支持,解决方法是额外加载一个oci.dll文件 解决办法:1.下载OCI.DLL相关库文件.地址: (需注册Oracle账号) http://www.oracle.com/technetwork/topics/winsoft-085727.html ----->  

WAF——针对Web应用发起的攻击,包括但不限于以下攻击类型:SQL注入、XSS跨站、Webshell上传、命令注入、非法HTTP协议请求、非授权文件访问等

核心概念 WAF Web应用防火墙(Web Application Firewall),简称WAF. Web攻击 针对Web应用发起的攻击,包括但不限于以下攻击类型:SQL注入.XSS跨站.Webshell上传.命令注入.非法HTTP协议请求.非授权文件访问等.

sql

use simulation; # 多条SQL语句必须以分号分隔 show DATABASES ; show TABLES ; show COLUMNS from customers; # SQL语句不区分大小写 SHOW COLUMNS FROM products; SHOW COLUMNS FROM vendors; SHOW COLUMNS FROM orders; SHOW COLUMNS FROM productnotes; SHOW COLUMNS FROM orderitems;

MyBatis学习(四)XML配置文件之SQL映射的XML文件

SQL映射文件常用的元素: 1.select 查询语句是MyBatis最常用的语句之一. 执行简单查询的select元素是非常简单的: <select id="selectUser" parameterType="int" resultType="hashmap"> SELECT * FROM PERSON WHERE ID = #{id} </select> 这个语句被称作selectUser,接受一个int类型的参数,