---------------------- <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基础(中)的更多相关文章

  1. 黑马程序员+ADO.Net基础(下)

    ---------------<a href="http://edu.csdn.net"target="blank">ASP.Net+Android ...

  2. 黑马程序员+ADO.Net基础(上)

    ---------------<a href="http://edu.csdn.net"target="blank">ASP.Net+Android ...

  3. 黑马程序员:Java基础总结----泛型(高级)

    黑马程序员:Java基础总结 泛型(高级)   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 泛型(高级) 泛型是提供给javac编译器使用的,可以限定集合中的输入类型 ...

  4. 黑马程序员:Java基础总结----类加载器

    黑马程序员:Java基础总结 类加载器   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 类加载器 Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个 ...

  5. 黑马程序员:Java基础总结----静态代理模式&动态代理

    黑马程序员:Java基础总结 静态代理模式&动态代理   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 静态代理模式 public  class  Ts {   ...

  6. 黑马程序员:Java基础总结----枚举

    黑马程序员:Java基础总结 枚举   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 枚举 为什么要有枚举 问题:要定义星期几或性别的变量,该怎么定义?假设用1-7分别 ...

  7. 黑马程序员:Java基础总结----反射

    黑马程序员:Java基础总结 反射   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 反射 反射的基石:Class类 Class类代表Java类,它的各个实例对象又分别 ...

  8. 黑马程序员:Java基础总结----JavaBean 内省

    黑马程序员:Java基础总结 JavaBean 内省   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! JavaBean  内省 软件包 java.beans 包含与开 ...

  9. 黑马程序员:Java基础总结----java注解

    黑马程序员:Java基础总结 java注解   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! java注解 lang包中的基本注解 @SuppressWarnings ...

随机推荐

  1. 使用spring-data-redis做缓存

    说到缓存,首先肯定是spring-cache了. spring-cache使用一个CacheManager来进行管理缓存,为了使用我们的redis作为缓存源,需要向spring注册一个CacheMan ...

  2. centos7引导项修复

    每次装了双系统,都会发现原来的windows引导项不见了,这让我这个windows重度依赖者情何以堪,所以,必须要把我挚爱的windows给找回来. 翻看了一些网上的教程,看来这并不是一个困难的问题. ...

  3. 使用Fiddler针对Android手机网络请求抓包

    本文转载自大牛Trinea的博文:Android利用Fiddler进行网络数据抓包 主要介绍Android及IPhone手机上如何利用Fiddler进行网络数据抓包,比如我们想抓某个应用(微博.微信. ...

  4. ViewPager循环显示

    好久没有写博客了,今天加一个ViewPager页面的循环显示,添加了一个删除页面的小按钮: MainActivity.java package com.yt.viewpagerlooper; impo ...

  5. 解决服务器Active&nbsp;Directory环境里Windows登录性能问题办法

    Windows登录性能因素 当查找登录性能问题的原因时,考虑大量因素很重要.一些因素包括: 域控制器太接近用户 网络连接与可用的带宽 数据中心上的硬件资源(x64 vs.x86.内存等) 应用于用户和 ...

  6. 一点一滴学shell

    1. 获取shell脚本的名称 ${BASH_SOURCE-$0} 2. 获取shell脚本的路径 dirname "${BASH_SOURCE-$0}" 这个路径不一定是脚本的真 ...

  7. C#窗口应用如何居中

    在form的属性设置里面有一个初始位置的设置(startposion)设置成centerscreen(屏幕居中即可)

  8. flex柱状图

    柱状图的展现是通过flex自带的控件实现 控件解析:<mx:ColumnChart id = "columns" dataProvider = "{dataSour ...

  9. OD使用教程4

    去除nag窗口: 方法一将je改成jmp跳过messageboxA 方法二全部填充成Nop,选中右键二进制Nop填充 第三种方法push的值改成1使句柄不存在 获得模块句柄: 第四种修改入口地址 点击 ...

  10. Kiwi iOS驱动测试开发

    Kiwi是iOS开发一个行为驱动开发库.目标是提供一个BDD库,精美的简单安装和使用. 安装 使用CocoaPods安装: pod 'Kiwi'如果使用Xcode5则使用: pod 'Kiwi/XCT ...