温习WinForm程序与数据库连接操作
来源:互联网 发布:自动发微博软件 编辑:程序博客网 时间:2024/06/05 14:14
新的一学期,新的开始,2012年为了迎接百日之后的实习,开始紧跟着老师复习,加上自己的继续坚持学习,希望时间一到可以找到一个比较好的工作,与实现自己的梦想更进一步。
今天复习了之前学过的WinForm窗体程序,实现一个简单的登录功能,通过作业也实现了一些以前没做过的功能,限制登录次数,登录次数过多后稍候才能再次登录。
通过今天的复习感觉到,知识学的快,忘记的速度也是不容小视的,要保持自己的记忆,只有坚持“学而时习之”,然而每个人的一生也都应该在学习中度过,这样不会觉得时间被浪费,被荒度,充分利用每时每刻,温习旧的知识,更新新的知识,而且在IT这一特殊的行业中,技术更新的速度之快,经常会出乎人们的意料,更突出了更新自己的技术的重要性,保证自己不OUT掉,才会提升自己的价值,保证自己在IT大军中处于靠前的位置。
今天的温习也拾起了过去熟悉而现在却有些许陌生的代码,下面也贴出来自己今天的成果以备后用
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Configuration;
namespace WinFormWork
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public int i = 0;
private void button1_Click(object sender, EventArgs e)
{
string str = ConfigurationManager.ConnectionStrings["strcon"].ConnectionString;
SqlConnection con = new SqlConnection(str);
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "select * from T_Users where UserName=@username and Password=@password";
com.Parameters.AddWithValue("@username", txtName.Text);
com.Parameters.AddWithValue("@password", txtPassword.Text);
SqlDataAdapter adapter = new SqlDataAdapter(com);
DataTable dt = new DataTable();
adapter.Fill(dt);
if (dt.Rows.Count == 1)
{
if (i > 2)
{ MessageBox.Show("尝试次数过多,请稍候再试"); }
else
{
MessageBox.Show("登录成功!");
}
}
else if (dt.Rows.Count <= 0)
{
if (i == 0)
{
MessageBox.Show("输入用户名或密码不正确,请重新输入,还有2次机会!");
i++;
return;
}
else if (i == 1)
{
MessageBox.Show("输入用户名或密码不正确,请重新输入,还有1次机会!");
i++;
return;
}
else if (i == 2)
{
MessageBox.Show("尝试次数过多,请稍候再试!");
com.CommandText = "update T_Users set ErrorTime=@error where UserName=@name";
com.Parameters.AddWithValue("@error", DateTime.Now);
com.Parameters.AddWithValue("@name", txtName.Text);
con.Open();
int m = com.ExecuteNonQuery();
i++;
}
#region 等待时间
else
{
com.CommandText = "select Errortime from T_Users where username=@user";
com.Parameters.AddWithValue("@user", txtName.Text);
con.Open();
string time = Convert.ToString(com.ExecuteScalar());
DateTime datetime1, datetime2 = DateTime.Now;
datetime1 = Convert.ToDateTime(time);
int d3 = 0;
TimeSpan ts1 = new TimeSpan(datetime1.Ticks);
TimeSpan ts2 = new TimeSpan(datetime2.Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration();
d3 = ts.Minutes;
if (d3 < 2)
{
MessageBox.Show("尝试次数过多,请稍候再试!");
}
else
{
i = 0;
return;
}
}
#endregion
}
com.Dispose();
con.Dispose();
}
}
}
一种表示时间段的实例:
TimeSpan是用来表示一个时间段的实例,两个时间的差可以构成一个TimeSpan实例,现在就来简单介绍一下几点重要的用法:
a 先来介绍几个方法
TimeSpan.Minutes(其他时间比如天数,小时数,秒数都一样的情况下得到的分钟数的差),其他的Hours,Second一样
DateTime.Tick :是一个计时周期,表示一百纳秒,即一千万分之一秒,那么 Ticks 在这里表示总共相差多少个时间周期,即:9 * 24 *
TimeSpan.TotalDays:两个时间段相差的日数,其他的TotalHours,TotalMinutes,TotalSeconds 一样
b 两个时间的差
string time1 = "2010-5-26 8:10:00";
string time2 = "2010-5-26 18:20:00";
DateTime t1 = Convert.ToDateTime(time1);
DateTime t2 = Convert.ToDateTime(time2);
TimeSpan ts1=t2-t1;
string tsMin=ts1.Minutes.ToString();
TimeSpan ts11=new TimeSpan(t1.Tick);
TimeSpan ts22=new TimeSpan(t2.Tick);
string diff=ts22.Subtract(ts11).TotalMinutes.ToString();
Subtract:表示两个时间段的差
diff:就表示两个时间相差的分钟数,上面的例子就是610分钟。
得到一个 TimeSpan 实例,TimeSpan 有一些属性:Days、TotalDays、Hours、TotalHours、Minutes、TotalMinutes、Seconds、TotalSeconds、Ticks,注意没有 TotalTicks。
这些属性名称开始理解有些困难,但阅读本文后,相应您一定茅塞顿开。
举例说明
- 时间 1 是 2010-1-2 8:43:35;
- 时间 2 是 2010-1-12 8:43:34。
用时间 2 减时间 1,得到一个 TimeSpan 实例。
那么时间 2 比时间 1 多 9 天 23 小时 59 分 59 秒。
那么,Days 就是 9,Hours 就是 23,Minutes 就是 59,Seconds 就是 59。
- 温习WinForm程序与数据库连接操作
- Java程序与数据库连接
- Java程序与数据库连接
- Java程序与数据库连接
- 数据库连接与基本操作
- winform-数据库连接
- Dotfuscator混淆winform程序中导致无法找到数据库连接字符串
- C# WinForm程序的App.Config数据库连接配置文件
- C# WinForm程序App.Config数据库连接配置文件的使用过程
- vb与access2003数据库连接程序
- Oracle温习与入门
- C# WinForm程序对AD操作
- 数据库连接池配置与测试程序
- java入门教程-12.4Java程序与数据库连接
- 总结数据库连接与操作的问题
- 命令行下mysql数据库连接与操作
- mysql和orcale数据库连接与SQL操作
- 命令行下mysql数据库连接与操作
- Mathematica函数速查手册
- module: numpy
- Hibernate的事务
- 请暂时忘掉MXML
- session永不失效
- 温习WinForm程序与数据库连接操作
- Hibernate的状态
- 第 2 部分: 使用新输入过滤扩展功能
- arm与flash连接错位的原因 (2009-09-08 01:33:26)
- 登录方法及防止sql注入
- 微软也会错,后置++很危险!
- 聚集索引和非聚集索引的区别
- 推荐读物,出处未知
- Android学习笔记3 - Button & TextView