Namespace(命名空间)的使用
关于Namespace(命名空间)的使用常用<% @ Import Namespace="System.Data" %>,这是在引用M$为我们提供的Namespace,这和ASP不同的,我们贏SP.net必须先引用与我们操作有关的Namespace后才能使用相应的功能。其实说白了,一个Namespace; 就是一个组件我下面简单的列举一些常用的Namespace
<% @ Import Namespace="System.Data" %> 处理数据时用到
<% @ Import Namespace="System.Data.ADO" % > 使用ADO.net ; 时用到
<% @ Import Namespace="System.Data.SQL" %> SQL Server 数据库专用
<% @ Import Namespace="System.Data.XML" %> 不用看处理XML用到
<% @ Import Namespace="System.IO" %> 处理文件时用到
<% @ Import Namespace="System.Web.Util" %> 发邮件时大家会用到
<% @ Import Namespace="System.Text" %> 文本编码时用到
操作数据库需要的东东
讲解了Namespace,我们可以正式来讨论数据库的应用了。从上面的可以看出,我们操作数据库,我们需要引用下面两个Namespace
<% @ Import Namespace="System.Data" %>
<% @ Import Namespace="System.Data.SQL" %>
其实System.Data.SQL 可以用System.Data.ADO来代替,SQL是SQL Server专用,ADO可以支持任何数据库(只要在主机上存在相应的驱动就行了,如Access,Mysql,Oracle之类的),这里由于飞刀的数据库是SQL Server,本来可以用ADO,但是想想M$单独把SQL独立出来,为何不用呢。至于它能带来多少好处,飞刀没有测试过,对SQL Server肯定要比ADO好一点啦。
无论是ADO还是SQL ,他们都有几个基本的对象用于操作
Connections 连结到一个数据库,以便于后面的应用(类似ADO中的Connections)
Commands 执行SQL语句的地方
DataReader 读取执行后返回的数据内容
DataSet 储存数据,功能强大,我们会具体讲解
DataSetCommand 执行SQL语句,并把数据存入DataSet
这里面可能最难理解的就是DataSet,我们先不去管他,先拿软的开刀
Connections(SQLConection 或者 ADOConnection)
它的主要任务就是建立一个与数据库服务器的联结
<% @ Page Language="C#" %>
<% @ Import Namespace="System.Data" %>
<% @ Import Namespace="System.Data.SQL" %>
<Script Language= "C#" Runat= "Server">
public void Page_Load(Object src,EventArgs e)
{
stringstrProvider="server=localhost;uid=sa;pwd=;database=aspcn";
SQLConnection MyConnection=new SQLConnection(strProvider);
}
</script>
上面我们建立了一个名为MyConnection的联结,就好像我们在ASP中用ADODB.Connection打开了一个联结.这个联结我们在Command或者DataSetCommand中将会使用.
它的一些有用的属性和方法有
ConnectionString 取得或设置连结数据库的语句
ConnectionTimeout 取得或设置连结数据库的最长时间,也是就超时时间
DataBase 取得或设置在数据库服务器上要打开的数据库名
DataSource 取得或设置DSN,大家不会陌生吧:)
Password 取得或设置密码
UserID 取得或设置登陆名
State 取得目前联结的状态
Open() 打开联结
Close() 关闭联结
Clone() 克隆一个联结。(呵呵,绵羊可以Connection我也可以)
我们也通过一个小例子来看看他们的用法:
SQLConnection myConnection = new SQLConnection();
myConnection.DataSource = "mySQLServer";
myConnection.Password = "";
myConnection.UserID = "sa";
myConnection.ConnectionTimeout = 30;
myConnection.Open();
myConnection.Database = "northwind";
myConnection.IsolationLevel = IsolationLevel.ReadCommitted
Commands(SQLCommand 或者 ADOCommand)
上面的程序中我们打开了一个联结,这里我们就需要来使用这个,看例子比较好:
<% @ Page Language="C#" %>
<% @ Import Namespace="System.Data" %>
<% @ Import Namespace="System.Data.SQL" %>
<Script Language="C#" Runat="Server">
public void Page_Load(Object src,EventArgs e)
{
stringstrProvider="server=localhost;uid=sa;pwd=;database=aspcn";
string strIndex="select * from aspcn where purview='webmaster'";
SQLConnection MyConnection=new SQLConnection(strProvider);
SQLCommand MyCommand = new SQLCommand(strIndex,MyConnection);
MyConnection.Open(); //打开联结
MyCommand.ExecuteNonQuery(); //执行SQL,但不返回任何记录
MyConnection.Close();
}
</script>
在上面的例子中我们建立SQLCommand对象时引用了两个参数(strIndex,MyConnection),从源程序中我们也可以看出来strIndex代表的是执行的SQL语句,MyConnection是我们先前建立的联结.然后我们就要先打开MyConnnection,然后再执行这个SQL语句。我们在这里执行用的是ExecuteNonQuery()方法,这样不返回记录集,只是返回受影响的记录个数。
这里我们打开和关闭数据库也可以这样做。
stringstrProvider="server=localhost;uid=sa;pwd=;database=aspcn";
string strIndex="select * from aspcn where purview='webmaster'";
SQLConnection MyConnection=new SQLConnection(strProvider);
SQLCommand MyCommand = new SQLCommand(strIndex,MyConnection);
MyCommand.ActiveConnection.Open();
MyCommand.ExecuteNonQuery();
MyCommand.ActiveConnection.Close();
所得结果和先前的一样。所以执行一条SQL语句有很多种方法。而且还不只两种,我们后面学了DataSetCommand,那打开方法就是N种了:)这就需要看你的习惯和程序的要求了;)
我们先来看看Command常用的方法和属性
ActiveConnection 取得或设置联结Connections
CommandText 执行的SQL语句或储存过程(StoredProcedure)名
CommandTimeout 执行的最长时间
CommandType Command操作的类型(StoredProcedure,Text,TableDirect)三种,默认Text
Parameters 操作储存过程时使用
Execute() 执行SQL语句或储存过程
ExecuteNonQuery() 同上,区别在于不返回记录集
Clone() 克隆Command
同样看一个例子:
string mySelectQuery = "SELECT * FROM Categories ORDER BY CategoryID";
stringmyConnectString="userid=sa;password=;database=northwind;server=mySQLServer";
SQLCommand myCommand = new SQLCommand(mySelectQuery);
myCommand.ActiveConnection = new SQLConnection(myConnectString);
myCommand.CommandTimeout = 15;
myCommand.CommandType = CommandType.Text;
相关文章:
“编程能力差!90%输在这点上”谷歌AI专家:其实都是瞎努力!
最近几年,我看过市面上很多 Python和人工智能的教程,基本都在这样讲:先介绍Python基本语法、dict、tuple 等基本库的使用,最后学习机器学习、深度学习的常用算法......但我与Google人工智能开发专家彭靖田老师沟通后发现ÿ…

NAS存储对称和非对称结构之前的区别概述
传统的系统利用紧耦合对称架构,这种架构的设计旨在解决HPC(高性能计算、超级运算)问题,现在其正在向外扩展成为云存储从而满足快速呈现的市场需求。下一代架构已经采用了松弛耦合非对称架构,集中元数据和控制操作&…

Lucene:基于Java的全文检索引擎简介(转载)
Lucene是一个基于Java的全文索引工具包。基于Java的全文索引引擎Lucene简介:关于作者和Lucene的历史全文检索的实现:Luene全文索引和数据库索引的比较中文切分词机制简介:基于词库和自动切分词算法的比较具体的安装和使用简介:系统…
昨天,我用 Python 写了一个婚介模型
作者 | 天元浪子来源 | CSDN(ID:CSDNnews)先声明一下:本文纯属七夕应景娱乐之作。如果有人因为遵循本模型提出的择偶理论而导致失恋或单身,除了同情,我不能补偿更多。在中国的传统节日里,七夕可…

WCF服务一:WCF服务简介
一、回顾开发历史: 软件架构的设计经历了:从面向对象程序,到面向组件程序设计,再到面向服务程序设计。这三种方式都致力于同一个目标:封装和重用。 面向对象程序设计:类封装功能并提供代码重用。 面向组件程…
MIT 更新最大自然灾害图像数据集,囊括 19 种灾害事件
作者 | 神经小兮来源 | HyperAI超神经(ID:HyperAI)内容提要:麻省理工学院在最近 ECCV 2020 上提交的一篇论文中,发布了一套自然灾害图像数据集。这是迄今为止规模最大、质量最高的自然灾害卫星图像数据集。2020 年&…

DataBind数据核心
作者:飞刀 这一节主要是要讲DataBind,这个在ASP.net中是很重要的东东,几乎所有的控件都需要它来控制数据的操作。也可以说是ASP.net的数据核心。 我们先来看一个简单的例子: <% Page Language"C#" %> <% …

convertViewsetTag方法的一点理解
转自:http://blog.163.com/freemanls126/blog/static/164585061201171210504864/ 前言 首先我们要知道setTag方法是干什么的,SDK解释为 Tags Unlike IDs, tags are not used to identify views. Tags are essentially an extra piece of information tha…

iOS使用Security.framework进行RSA 加密解密签名和验证签名
iOS 上 Security.framework为我们提供了安全方面相关的api; Security框架提供的RSA在iOS上使用的一些小结 支持的RSA keySize 大小有:512,768,1024,2048位支持的RSA 填充方式有三种:NOPadding,PKCS1,OAEP 三…

Android APK反编译详解(附图)
这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。 在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习…
你不知道的18个Python高效编程技巧
来源 | Python编程时光初识Python语言,觉得python满足了我上学时候对编程语言的所有要求。python语言的高效编程技巧让我们这些大学曾经苦逼学了四年c或者c的人,兴奋的不行不行的,终于解脱了。高级语言,如果做不到这样,…

Alisql源码编译安装(详细篇)
前言 AliSQL 在 2016 云栖大会宣布开放源代码之后,迅速就获得了广泛的关注,目前(2016-10-27) star 数目已达 1187,欢迎访问 AliSQL GitHub 项目关注。社区反应也非常活跃,在 Issue 中提了不少反馈建议,其中有一部分是和…

如何给DataGrid添加自动增长列
作者: cuike519的专栏 http://blog.csdn.net/cuike519/我想我们都知道在数据库中如何添加自增长列,我们可以将这个自增长列绑定到DataGrid上使得用户方便的知道现在是第几行,今天我介绍一种不用数据库就可以简单显示出自增长列的方法&…
达摩院NLP团队斩获六项世界冠军背后,让AI没有难懂的语言
2018年末,BERT横空出世,它采用自编码对句子进行表示,通过预测掩盖词和上下句之间的关系作为语言模型学习任务,使用更多的数据,更大的模型,在多个自然语言处理(NLP)任务中显著超越之前…

提权巧用RAR.EXE
rar.exe是什么?它就是大名鼎鼎的winrar自带的命令行解压程序。在提权中我们经常要下载各种敏感文件,比如:SU目录。你想一下,如果su目录文件这么多,难道你要一个个的下载??这明显就很麻烦,有了ra…
OSGI企业应用开发(二)Eclipse中搭建Felix运行环境
上篇文章介绍了什么是OSGI以及使用OSGI构建应用的优点,接着介绍了两款常用的OSGI实现,分别为Apache Felix和Equinox,接下来开始介绍如何在Eclipse中使用Apache Felix和Equinox搭建OSGI运行环境。 一、搭建Apache Felix运行环境 上篇文章中介绍…
马斯克脑机接口、BrainOS相继发布,不努力也能有出路了
作者 | 马超责编 | Carol封图 | CSDN 下载自视觉中国在北京时间的8月29日凌晨,钢铁侠埃隆马斯克投资1亿多美元的脑机接口初创公司公司Neuralink(http://www.neurolink.company/)进行了一次现场发布会,展示新一代的脑机接口设备。这…

C语言单向链表的实现
一个简单结点的结构体表示为:struct note{int data; /*数据成员可以是多个不同类型的数据*/struct note *next; /*指针变量成员只能是-个*/}; 一个简单的单向链表的图示1.链表是结构、指针相结合…

Java开发常用Linux命令
1.查找文件 find / -name filename.txt根据名称查找/目录下的filename.txt文件。 find . -name "*.xml"递归查找所有的xml文件 find . -name "*.xml" |xargs grep "hello world"递归查找所有文件内容中包含hello world的xml文件 grep -H spring …

数据库开发基本操作-安装Sql Server 2005出现“性能监视器计数器要求”错误解决方法...
今天在安装SQL Server 2005时,出现“性能监视器计数器要求”错误,因为以前出现过这种错误,得到了解决。今天又又出现这种错误,但并不是很清楚当时的解决办法,所以这次把解决方法记录下来,供自己以后参考&am…
华为昇腾师资培训沙龙·南京场 |华为昇腾 ACL 语言开发实践全程干货来了!看完就实操系列...
自今年疫情以来,AI 技术加速进入了人们的视线,在抗疫过程中发挥了重要作用,产业发展明显提速,我国逐步走出了一条由需求导向引领商业模式创新、市场应用倒逼基础理论和关键技术创新的发展道路,AI 人才的争夺战也正式打…
设计模式之C#实现---Builder
作者:cuike519的专栏 http://blog.csdn.net/cuike519/我们将要介绍一个和它比较像的创建型模式 Builder (至于关于 Builder 的详细内容您可以参考 GOF 的书,在这里不重复了。)。在 GOF 的书里 Builder 的目的是这样的࿱…

微信小程序开发之不能使用eval函数的问题
2019独角兽企业重金招聘Python工程师标准>>> 一 eval函数问题 JavaScript中的eval函数是颇受开发者争议的问题之一,问题主要在于其可能导致的不安全性。有关此方面问题,在此不再赘述,读者可能很容易地浏览到许多介绍性文章。 但是…

设计模式之C#实现--FactoryMethod
作者:cuike519的专栏 http://blog.csdn.net/cuike519/工厂方法的目的很明确就是定义一个用来创建对象的接口,但是他不直接创建对象,而由他的子类来创建,这样一来就将创建对象的责任推迟到了该接口的子类中,创建什么类…
美国AI博士指出,自学Python到底能做什么
我见过市面上很多的 Python 讲解教程和书籍,他们大都这样讲 Python 的:先从 Python 的发展历史开始,介绍 Python 的基本语法规则,Python 的 list, dict, tuple 等数据结构,然后再介绍字符串处理和正则表达式࿰…

关于微博溯源的后续问题
1、在进行关键词搜索的时候,如何分词,我们不可能用语料库进行匹配,已没有语料可以学习。 2、关于转折点的寻找。目前我们使用高级搜索,从当前时间往前推,根据搜索到微博的条数变化,确定时间发生具体时间&am…

python3的数据类型以及模块的含义
python3的数据类型以及模块的含义购物车转载于:https://blog.51cto.com/11834445/1884901
设计模式之C#实现---- ProtoType
作者: cuike519的专栏 http://blog.csdn.net/cuike519/该模式的意图是:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。那么首先我们应该已经有了一个对象,同时这个对象还支持自我复制(科隆&…

快速排序(二)最后修改
1 //2012-07-162 void quickSort(element list[], int left, int right)//快速排序3 {4 int ileft;5 int jright;6 7 if(i > j) //判断需要i<j8 return;9 10 element templist[i]; 11 12 while(i<j) 13 { 14 while(i<j …
性能超越GPU、FPGA,华人学者提出软件算法架构加速AI实时化
作者 | 王言治,美国东北大学电子与计算机工程系助理教授出品 | AI科技大本营(ID:rgznai100)近年来,机器学习(Machine Learning)领域的研究和发展可谓是与日俱新,各式各样与机器学习相关的研究成果与应用层出不穷&#…