2015-10-29 ado.net 1
一.什么是ado.net
ADO.NET是一组允许.NET开发人员使用标准的,结构化的,甚至无连接的方式与数据交互的技术。
二.连接到数据库
<connectionStrings>
<add name="qie_yishen" connectionString="Database=qie_yishen;Server=LENOVO-PC;Integrated Security=false;Uid=sa;Password=123456;" providerName="System.Data.SqlClient"/>
</connectionStrings>
////// Integrated Security=True是Windows连接
2.2 后台调用
//通过节点的名称,获取节点的字符串
//电话号码
string strCon = ConfigurationManager.ConnectionStrings[“qie_yishen”(结点名,一般为数据库名)].ToString(); //System.Configuration命名空间
三.ado.net对象
3.1Connection对象,Command对象,SqlDataReader对象
//创建对象
SqlConnection con = new SqlConnection(strCon);//电话
con.Open(); //和数据库建立起连接,拨通电话
string strsql = string.Format("select userId from Login where userName='{0}'and userPwd='{1}'", username, pwd);//将字符串获取到内容中,防注入
SqlCommand cmd = new SqlCommand(strsql,con); //执行sql语句
SqlDataReader read = cmd.ExecuteReader();//获取sql语句的结果
if(read.Read())
{
Response.Write("<script>alert('登录成功');</script>");
Response.Redirect("Rnewsfind.aspx"); //跳转页面
}
else
{
Response.Write("<script>alert('用户名密码错误')</script>");
}
read.Close();
read.Dispose();
con.Close();
con.Dispose();
3.2Command对象
1. ExecuteNonQuery: 执行增删改语句,返回值为该命令所影响的行数。
2. ExecuteReader: 执行查询,并返回一个 DataReader 对象。
3. ExecuteScalar: 执行查询, 返回查询数。
另: 凡是继承于IDisposable的接口的都要释放资源 譬如:SqlConnection,SqlDataReade
using 1.引入命名空间 2.释放资源
所以上面也可以写成:
using (SqlConnection con = new SqlConnection(strCon))
{
con.Open();
string strsql = string.Format("string userId from Login where userName='{0}'and userPwd='{1}'", username, pwd);
SqlCommand cmd = new SqlCommand(strsql, con);
using (SqlDataReader read = cmd.ExecuteReader())
{
if (read.Read())
{
Response.Write("<script>alert('登录成功');</script>");
}
else
{
Response.Write("<script>alert('用户名密码错误')</script>");
}
}
}
四.字符串拼凑,防sql注入
StringBuilder sb = new StringBuilder();
sb.Append("select * from Rnews where 1=1");
if(!string.IsNullOrEmpty(txtNewid.Text.Trim()))
{
sb.Append(string.Format("and newsId={0}", Convert.ToInt32(txtNewid.Text.Trim())));
}
if(ddlnews.SelectedIndex>0)
{
sb.Append(string.Format("and Title='{0}'", ddlnews.SelectedValue));
}
return sb.ToString();
五.数据绑定
string strsql = Getsql();
using(con = new SqlConnection(strCon))
{
con.Open();
cmd = new SqlCommand(strsql, con);
using(read=cmd.ExecuteReader())
{
if(read.HasRows) //获取结果集
{
gvRnews.DataSource = read; //获取数据源
gvRnews.DataBind(); //数据绑定
}
}
}
六.fieldset标签
<fieldset style="width: 405px; height: 53px">
<legend align="top">查询</legend>
</fieldset>
2015-10-29 ado.net 1的更多相关文章
- Forth scrum meeting - 2015/10/29
今天下午,我们终于要到了MOOC服务器端开发人员的联系方式,于是我们小组派了三名同学去实验室与他们进行了交流,并咨询了他们一些关于API接口的问题.他们也对我们这个客户端的开发提出了一些建议. 开发团 ...
- Daily Scrum (2015/10/29)
今天晚上我们学霸项目的三个小组在一起开会,讨论如何能在后期使我们三个项目更好地结合在一起.为了三个小组的能够同时工作,不出现某一小组因需要其他小组成果而停滞的情况,我们决定围绕lucene,solr, ...
- Daily Scrumming* 2015.10.29(Day 10)
一.总体情况总结 二.今明两天任务表 Member Today’s Task Tomorrow’s Task 江昊 了解微信API,与社团服务平台创业公司嗨社团创始人沟通,了解其平台运营方案与商业模式 ...
- 背水一战 Windows 10 (29) - 控件(文本类): RichTextBlock, RichTextBlockOverflow, RichEditBox
[源码下载] 背水一战 Windows 10 (29) - 控件(文本类): RichTextBlock, RichTextBlockOverflow, RichEditBox 作者:webabcd ...
- 4分钟apache自带ab压力测试工具使用: 2015.10.4
2015.10.44分钟apache自带ab压力测试工具使用:win8.1 wampserver2.5 -Apache-2.4.9-Mysql-5.6.17-php5.5.12-64b 可以参考一下部 ...
- 2015.12.29~2015.12.30真题回顾!-- HTML5学堂
2015.12.29~2015.12.30真题回顾!-- HTML5学堂 吃饭,能够解决饥饿,提供身体运作机能.练习就像吃饭,强壮自己,提升编程技能,寻求编程技巧的最佳捷径!吃饭不能停,练习同样不能停 ...
- 【Selenium】【BugList9】windows环境,fp = open("./"+ time.strftime("%Y-%m-%d %H:%M:%S") + " result.html",'wb'),报错:OSError: [Errno 22] Invalid argument: './2018-09-05 10:29:32 result.html'
[代码] if __name__=="__main__": suite = unittest.TestSuite() suite.addTest(Baidu("test_ ...
- 10.29 正睿停课训练 Day11
目录 2018.10.29 正睿停课训练 Day11 A 线段树什么的最讨厌了(思路 DFS) B 已经没有什么好害怕的了(差分 前缀和) C 我才不是萝莉控呢(DP 贪心 哈夫曼树) 考试代码 A ...
- First Scrum Meeting (2015/10/18)
会议是在昨晚进行的,本来早就应该写博了,可惜今天校园网炸个不停= =.刚修好就赶紧来发博客. 会议基本要素 会议主题:爬虫项目的核心技术讨论以及项目初期的工作分配 会议时间:2015.10.18 19 ...
- 第17次Scrum会议(10/29)【欢迎来怼】
一.小组信息 队名:欢迎来怼小组成员队长:田继平成员:李圆圆,葛美义,王伟东,姜珊,邵朔,冉华 小组照片 二.开会信息 时间:2017/10/29 17:20~17:42,总计22min.地点:东北师 ...
随机推荐
- Java多线程编程的常见陷阱
.在构造函数中启动线程 我在很多代码中都看到这样的问题,在构造函数中启动一个线程,类似这样: public class A{ public A(){ ; ; this.thread=new MyThr ...
- js let
<script> var a; // 变量提升 js中的作用域只有在函数中 {} 才称为作用域 if/for循环都不是 都会产生变量提升 console.log(a); { a = 2; ...
- java之过滤器
form.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" page ...
- 编译原理---antlr实践+编译过程理解+课程理解知识点
0.其他说明 0.0编译器分为前.中.后端,课上主要学的是前端.前端又分为词法分析(lexical analysis).语法分析(syntax analysis).语义分析(semantic anal ...
- C# 解析html中筛选class的问题
C# 解析html中筛选class的问题 C# html解析 class 类 当我们用C#的.net解析html的时候,当html的元素没有id,并且没有过多的属性供筛选,只能通过class=&qu ...
- iOS项目之使用开关控制日志输出的功能
最近一直在做sdk的项目,用户提出了一个需求,需要屏蔽sdk内部的日志输出.由于sdk内部的日志是为了调试,如果屏蔽了肯定不方便,所以研究了一下日志输出开关的功能. 在这里介绍两种实现方案:一种方案是 ...
- Integer类toString(int i,int radix)方法
Integer类toString(int i,int radix)方法: 首先抛出java的api中的介绍: public static String toString(int i, int radi ...
- c++的虚继承
今天去面试了一家公司,真是套路深啊,套路深,原谅我是后知后觉,所以人吧总的长大,出差正常情况下都是有补贴的,为啥这部分也要算我工资一部分,名其名曰工资高,哈哈哈,自古套路方得人心 今天学习了一下c++ ...
- 用python进行OpenCV实战之用OpenCV3实现图片载入、显示和储存(argparse详细解释)
将下面文档存为load_display_save.py #-*- coding:utf-8 -*- ap = argparse.ArgumentParser() ap.add_argument(&qu ...
- BZOJ-1587|前缀和 预处理 dp||叶子合并leaves
叶子合并leaves Description 在一个美丽的秋天,丽丽每天都经过的花园小巷落满了树叶,她决定把树叶堆成K堆,小巷是笔直的 共有N片树叶(树叶排列也是笔直的),每片树叶都有一个重量值,并且 ...