黑马程序员+ADO.Net基础(上)
---------------<a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流!-------------
1 在项目中添加数据库,当要打包项目给别人的时候,需要断开数据库的连接
2 连接SQLserver:连接到那台服务器上,那个实例那个数据库,用户名和密码
“Data Data Source=ZHANGLIANG\SQLEXPRESS;Initial Catalog=MyDB;Integrated Security=True”
连接数据库语句:SqlConnection需要using
stringconStr=@"Data Source=ZHANGLIANG\SQLEXPRESS;Initial Catalog=MyDB;Integrated Security=True";
using(SqlConnectionconn=newSqlConnection(conStr)){
if (conn!=null)
{
conn.Open();
Console.WriteLine("Success!");
}}
3 插入操作:
using( SqlConnection conn = new SqlConnection(conStr) ){
if (conn != null)
{
conn.Open();
Console.WriteLine("连接 Success!");
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "insert into Person(name,age)values('yy',29) ";
cmd.ExecuteNonQuery();
Console.WriteLine("插入成功!");
}
}
}
4 登录练习:
/// <summary>
/// 登录方法
/// </summary>
static void LoginMethod(string conStr) {
Console.WriteLine("输入用户名:");
string name = Console.ReadLine();
Console.WriteLine("输入密码:");
string pwd = Console.ReadLine();
using (SqlConnection conn = new SqlConnection(conStr))
{
conn.Open();
using (SqlCommand cmd=conn.CreateCommand())
{
cmd.CommandText = "select * from T_user where name='"+name+"'";
using (SqlDataReader reader=cmd.ExecuteReader())
{
if (reader.Read())//有该用户
{
if (reader.GetString(reader.GetOrdinal("password"))==pwd.Trim())//密码一致
{
Console.WriteLine("登录成功!");
}
else
{
Console.WriteLine("登录失败!");
}
}
else
{
Console.WriteLine("用户不存在!");
}
}
}
}
5 用户界面插入数据
/// <summary>
/// 插入新用户信息
/// </summary>
/// <param name="conStr"></param>
static void InsertUserInfo(string conStr) {
Console.WriteLine("输入要插入的用户名:");
string name = Console.ReadLine();
Console.WriteLine("输入密码:");
string pwd = Console.ReadLine();
using (SqlConnection conn = new SqlConnection(conStr))
{
conn.Open();
using (SqlCommand cmd=conn.CreateCommand())
{
// cmd.CommandText = "insert into T_user(name,password)values('" + name + "','" + pwd + "')";
cmd.CommandText = string.Format("insert into T_user(name,password)values('{0}','{1}')",name,pwd);
cmd.ExecuteNonQuery();
Console.WriteLine("新用户信息插入成功!");
}
}
}
6 ExecuteScalar返回第一行和第一列的结果 :cmd.CommandText=“select cout(*) from T_user”; cmd.ExecuteScalar();
7 获取插入数据的id值:
cmd.CommandText=string.Format("insert into T_user(name,password) output inserted.id values('{0}','{1}')",name,pwd); Console.WriteLine(cmd.ExecuteScalar());//返回插入时的id值
8 close()与dispose()的区别: close() 后可以在Open,而dispose()后不能在open()
9 防注入漏洞攻击
/// <summary>
/// 防注册漏洞攻击
/// </summary>
/// <param name="conStr"></param>
static void CheckUserProtected(string conStr)
{
string name, pwd;
Console.WriteLine("Name:");
name = Console.ReadLine();
Console.WriteLine("Password:");
pwd = Console.ReadLine();
using(SqlConnection conn=new SqlConnection(conStr)){
conn.Open();
using (SqlCommand cmd=conn.CreateCommand())
{
cmd.CommandText = "select * from T_user where name=@Name and password=@Password";
cmd.Parameters.Add("@Name",name);
cmd.Parameters.Add("@Password",pwd);
if (Convert.ToInt32(cmd.ExecuteScalar())>0)
{
Console.WriteLine("登录成功!");
}
else
{
Console.WriteLine("登录失败!");
}
}
}
}
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
详细请查看:<a href="http://edu.csdn.net" target="blank">http://edu.csdn.net</a>
黑马程序员+ADO.Net基础(上)的更多相关文章
- 黑马程序员+ADO.Net基础(下)
---------------<a href="http://edu.csdn.net"target="blank">ASP.Net+Android ...
- 黑马程序员+ADO.Net基础(中)
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net ...
- 黑马程序员:Java基础总结----泛型(高级)
黑马程序员:Java基础总结 泛型(高级) ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 泛型(高级) 泛型是提供给javac编译器使用的,可以限定集合中的输入类型 ...
- 黑马程序员:Java基础总结----类加载器
黑马程序员:Java基础总结 类加载器 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 类加载器 Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个 ...
- 黑马程序员:Java基础总结----静态代理模式&动态代理
黑马程序员:Java基础总结 静态代理模式&动态代理 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 静态代理模式 public class Ts { ...
- 黑马程序员:Java基础总结----枚举
黑马程序员:Java基础总结 枚举 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 枚举 为什么要有枚举 问题:要定义星期几或性别的变量,该怎么定义?假设用1-7分别 ...
- 黑马程序员:Java基础总结----反射
黑马程序员:Java基础总结 反射 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 反射 反射的基石:Class类 Class类代表Java类,它的各个实例对象又分别 ...
- 黑马程序员:Java基础总结----JavaBean 内省
黑马程序员:Java基础总结 JavaBean 内省 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! JavaBean 内省 软件包 java.beans 包含与开 ...
- 黑马程序员:Java基础总结----java注解
黑马程序员:Java基础总结 java注解 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! java注解 lang包中的基本注解 @SuppressWarnings ...
随机推荐
- 【Lua】Lua的几点优化原则
Lua是一门以性能著称的脚本语言,被广泛的应用在很多方面,比如很多游戏的插件. 很多时候,没有必要去考虑性能的问题,不过,如果我们在开始编写代码的时候就以更适当,性能更高的方式与结构去组织代码,对于程 ...
- SharePoint中的ASHX
<%@ Assembly Name="namespace, Version=1.0.0.0, Culture=neutral, PublicKeyToken=key" %&g ...
- Java常用的7大排序算法汇总
1.插入排序算法 插入排序的基本思想是在遍历数组的过程中,假设在序号 i 之前的元素即 [0..i-1] 都已经排好序,本趟需要找到 i 对应的元素 x 的正确位置 k ,并且在寻找这个位置 k 的过 ...
- read函数返回值始终为1
部分程序如下: while(count=read(fd_s,buf,512)>0) printf("count=%d\n",count); write(f ...
- 【java】:枚举小demo
package com.jwis.study.enumeration; /** * @author lx * 枚举的一些方法 */ //⑴ enum Substar{tst1,tst2,ts3} pu ...
- Runloop 深入理解(转)
RunLoop 是 iOS 和 OSX 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理.之后会介绍一下在 iOS 中,苹果是如何利 ...
- 类Arrays
package p2; import java.util.Arrays; import java.util.List; public class ArraysDemo { public static ...
- 【Java学习笔记】Map接口的子接口---TreeMap
TreeMap,与TreeSet类似,可以对集合中的元素进行排序,同时保持元素的唯一性. 应注意,Comparable(实现接口,记得覆盖comparaTo方法),Comparator的使用. imp ...
- Unity将来时:IL2CPP是什么?
作者:小玉链接:https://zhuanlan.zhihu.com/p/19972689来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. Unity3D 想必大家都不陌 ...
- Spring 笔记
依赖注入(Dependency Injection DI) 通过依赖注入,对象的依赖关系将由系统中负责协调对象的第三方组件在创建对象的时候进行设定.(p6 spring之旅) 在创建类的时候需要依赖的 ...