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.地点:东北师 ...
随机推荐
- python大作业
爬取西刺代理 生成请求头 #encoding = utf-8; __all__ = ("Header"); import random; class Header(object): ...
- vue的三种通信方式
一 确定组件关系二 使用第一步确定的组件关系在下面找到使用方法 1 父子通信(子组件使用父组件数据渲染) a) 在 子组件 中添加props props: [自定义prop名字] b) 在子组件中把自 ...
- React Native之遇到的问题
问题一:使用 Android Studio 运行 React Native 新项目时,报错:Unable to load script from assets 'index.android.bundl ...
- 记字符串转bigDecimal的一个坑
项目中一个地方用到了bigdecimal,之前是字符串转Double,处理之后再转成String,看着麻烦,给改成用bigdecimal计算字符串,但是偶尔会出现如下异常. 很是诧异,加了非空校验,怎 ...
- xtrabackup 2.4.3 BUG
用XtraBackup对备份集进行apply log 的时候,卡在 xtrabackup 版本:2.4.3 InnoDB: Waited for 1535930 seconds for 128 pen ...
- pyinstaller
下载pyinstaller pip install pyinstaller 打包文件 pyinstaller -F run.py # 打包成单个文件
- Python中 sys.argv[]的用法简明解释
sys.argv[]就是一个从程序外部获取参数的桥梁,这个“外部”很关键.因为我们从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表,所以才能 ...
- pytest使用简介
pytest是基于py unittest的一个单元测试框架,用起来比unittest简单不少,不过和unittest使用不太一样,总结如下: 格式: case的py文件名必须是test开头 def用例 ...
- 用户和用户组y哦不过y哦那个好
一.用户和用户组的简介? 介绍:https://blog.csdn.net/Na2Co3_Ren/article/details/74502309 二.用户可以分为3类? 1.主人:所有者的名字 2. ...
- Java线程池ThreadPoolExecutor原理和用法
1.ThreadPoolExecutor构造方法 public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAli ...