黑马程序员+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>、期待与您交流! ----------------------
10 案例登录:
/// <summary>
/// 登录成功后清空errorTimes
/// </summary>
/// <param name="conStr"></param>
/// <param name="name"></param>
private static void ResetErrorTimes(string conStr, string name)
{
using (SqlConnection conn = new SqlConnection(conStr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "update T_user set errortimes=0 where name=@Name";
cmd.Parameters.Add(new SqlParameter("@Name", name));
cmd.ExecuteNonQuery();
}
}
}
/// <summary>
/// 登录错误后errortimes+1
/// </summary>
/// <param name="conStr"></param>
/// <param name="name"></param>
private static void IncErrorTimes(string conStr, string name)
{
using (SqlConnection conn = new SqlConnection(conStr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "update T_user set errortimes+=1 where name=@Name";
cmd.Parameters.Add(new SqlParameter("@Name", name));
cmd.ExecuteNonQuery();
}
}
}
/// <summary>
/// 登录三次错误后退出
/// </summary>
/// <param name="conStr"></param>
static void ThreeLogin(string conStr)
{
do
{
Console.WriteLine("用户名:");
string name = Console.ReadLine();
Console.WriteLine("密码:");
string pwd = Console.ReadLine();
int errortimes = 0;
using (SqlConnection conn = new SqlConnection(conStr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select * from T_user where name=@Name ";
cmd.Parameters.Add("@Name", name);
using (SqlDataReader reader = cmd.ExecuteReader())
{
if (reader.Read())
{
errortimes = reader.GetInt32(reader.GetOrdinal("errortimes"));
if (errortimes >= 3)
{
Console.WriteLine("登录错误超过三次,不能再登录了");
break;
}
else
{
if (reader.GetString(reader.GetOrdinal("password")) == pwd)
{
Console.WriteLine("登录成功");
ResetErrorTimes(conStr, name);
break;
}
else
{
Console.WriteLine("登录失败!");
//reader.Close();//在连接没有关闭前不能有其他操作
//cmd.CommandText = "update T_user set errortimes+=1 where name=@Name";
//cmd.ExecuteNonQuery();
IncErrorTimes(conStr, name);
}
}
}
else
{
Console.WriteLine("用户不存在,请重新输入!");
}
}
}
}
} while (true);
}
11 导入导出数据:
/// <summary>
/// 插入数据到数据库中
/// </summary>
/// <param name="conStr"></param>
/// <param name="name"></param>
/// <param name="age"></param>
private static void InsertData(string conStr,string name,int age) {
using (SqlConnection conn=new SqlConnection(conStr))
{
conn.Open();
using (SqlCommand cmd=conn.CreateCommand())
{
cmd.CommandText = "insert into T_Person values(@Name,@Age)";
cmd.Parameters.Add("@Name",name);
cmd.Parameters.Add("@Age",age);
cmd.ExecuteNonQuery();
}
}
}
/// <summary>
/// 文件导入数据库
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
string conStr = @"Data Source=ZHANGLIANG\SQLEXPRESS;Initial Catalog=MyDB;Integrated Security=True";
OpenFileDialog ofd=new OpenFileDialog();
if (ofd.ShowDialog()==DialogResult.OK)
{
using (FileStream filestream =File.OpenRead(ofd.FileName))
{
using (StreamReader reader=new StreamReader(filestream))
{
string lines = null;
while ((lines=reader.ReadLine())!=null)
{
string[] line = lines.Split('|');
string name = line[0];
int age = Convert.ToInt32(line[1]);
InsertData(conStr,name,age);
}
}
}
MessageBox.Show("导入数据成功!");
}
}
/// <summary>
/// 导出
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{
using (SqlConnection conn = new SqlConnection(conStr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select name,age from T_Person";
using (SqlDataReader reader = cmd.ExecuteReader())
{
SaveFileDialog sfd = new SaveFileDialog();
if (sfd.ShowDialog() == DialogResult.OK)
{
///StringBuilder sb = new StringBuilder();
while (reader.Read())
{
string name = reader.GetString(reader.GetOrdinal("name"));
int age = reader.GetInt32(reader.GetOrdinal("age"));
using (FileStream stream=new FileStream(sfd.FileName, FileMode.Append))
{
using (StreamWriter writer=new StreamWriter(stream,Encoding.Default))
{
writer.WriteLine(string.Format("{0}|{1}",name,age));
}
}
}
MessageBox.Show("写入数据成功!");
}
}
}
}
}
---------------------- <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+Android ...
- 黑马程序员: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 ...
随机推荐
- c语言选择排序
简单选择排序是经常用到的一种排序算法. 原理: 1.简单选择排序一句话概括:每次选择无序数列中最小的将其放在有序数列的最后. 2.在简单选择排序中,我们用初始化的数字int a[6]={2,5,6,3 ...
- maven学习(5)-maven中常见错误
maven报错非法字符:\65279 错误 开发中一个项目很早就报这个错,maven报错非法字符:\ 错误, 开发过程中偶尔会遇到,今天终于下决心要解决这个问题 编译java 文件的时候,有些java ...
- CSS盒子模型的理解
标准的CSS盒子模型包括:内容(content).填充(padding).边框(border).边界(margin) 这些属性,可以把它转移到我们日常生活中的盒子(箱子)上来理解,日常生活中所见的盒子 ...
- iOS随机页面NSClassFromString
NSString *className = self.classNameArray[randomNumber]; Class viewClass = NSClassFromString(class ...
- 搭建dns域名服务器过程
在用TCP/IP协议族架设的网络中,每一个节点都有一个唯一的IP地址,用来作为它们唯一的标志.然而,如果让使用者来记住这些毫无记忆规律的IP地址将是不可想象的.人们就需要一种有记忆规律的字符串来作为唯 ...
- 求两个集合的交集和并集C#
我是用hashset<T>来实现的 具体如代码所示 using System; using System.Collections.Generic; using System.Linq; u ...
- .Net 对App.config和Web.config的访问操作(增、删、读、改)
一.首先引用Configuration 1)App.config如下: using System.Configuration;//若果还没有Configuration,右键引用文件夹添加引用,在.NE ...
- linux系统编程之I/O内核数据结构
文件在内核中是用三种数据结构进行表示的 (1)文件描述符表:文件描述符表是一个结构体数组,数组的下标就是open函数返回的文件描述符. 文件描述符表的每一个记录有两个字段 *文件描述符标志 * 文 ...
- php socket解决方案
最近一直在为移动应用提供 php服务端api,以前 实时交互数据需求不严格(定时从手机端发送http请求),现在业务需求变更, 需要实时交互式接口,必须增加socket. 服务端框架使用YII 1.1 ...
- Spring控制反转(IOC)和依赖注入(DI),再记不住就去出家!
每次看完spring的东西感觉都理解了,但是过了一段时间就忘,可能是不常用吧,也是没理解好,这次记下来. 拿ssh框架中的action,service,dao这三层举例: 控制反转:完成一个更新用户信 ...