溫習WinForm程式與資料庫連線操作
新的一學期,新的開始,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
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
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 usernam[email protected]";
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 * 3600 * 10000000 + 23 * 3600 * 10000000 + 59 * 60 * 10000000 + 59 * 10000000 = 8639990000000。3600 是一小時 的秒數
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程式與資料庫連線操作
新的一學期,新的開始,2012年為了迎接百日之後的實習,開始緊跟著老師複習,加上自己的繼續堅持學習,希望時間一到可以找到一個比較好的工作,與實現自己的夢想更進一步。 今天覆習了之前學過的WinForm窗體程式,實現一個簡單的登入功能,通過作業也
解決C# WinForm程式與Oracle連線介面長時間沒有響應的問題
程式情況:C#編寫的WinForm程式(使用者管理系統),後端WCF服務為其提供資料,與Oracle相關的操作在WCF伺服器完成。遇到問題:最近有使用者報告異常,描述WinForm的某個搜尋介面(去呼叫WCF服務在Oracle中查詢資料)一直處於等待狀態。DBA那邊也有人報告
flask與資料庫連線相關操作
---恢復內容開始--- 首先要安裝 flask-sqlalchemy 資料庫連線設定 在flask-SQLAlchemy中,資料庫使用URL指定,而且程式使用的資料庫必須儲存到flask配置物件的SQLALCHEMY_DATABASE_URL鍵中 app.config['SQ
Java學習篇之--用純Java的JDBC驅動程式實現與資料庫連線
用純Java的JDBC驅動程式實現與資料庫連線 最近在研究JAVA中資料庫的連線,將知識整理一下分享給大家: Java程式可以用純Java的JDBC驅動程式實現與資料庫連線。這種方法應用較廣泛,但是需要下載相應的驅動程式包,因為不同的資
python單例與資料庫連線池
單例:專業用來處理連線多的問題(比如連線redis,zookeeper等),全域性只有一個物件 單例程式碼def singleton(cls): instances = {} def _singleton(*args, **kwargs)
asp.net一般處理程式對資料庫的操作
一、新建一個網站,在網站下面新增一個一般處理程式DemoHandler.ashx,程式碼如下: <%@ WebHandler Language="C#" Class="DemoHandler" %> using System; using System.Web; using System
事務 與 資料庫連線池【c3p0】 與 DBUtiles學習筆記
1.事務 開啟事務:start transaction; 回滾事務:rollback; 提交事務: commit; 關閉自動提交事務:setAutoCommit(false); 1.1事務的特性ACID【面試】 1.原子性【A】:事務包含的邏輯不可分割 一致性【C】:事務執行前後,資料完
Java——Web開發之事務與資料庫連線池
事務:指的是一組操作,裡面包含許多個單一的邏輯,只要有一個邏輯沒有執行成功,那麼都算失敗,所有的資料都回到最初的狀態。事務在預設情況下是自動提交的。(事務指標對連線物件) 1.事務的簡單使用 1).關閉自動提交的設定 conn.setAutoCommit(fal
C# SqlCommand 資料庫連線操作
//資料庫操作 string strcon = "server = localhost,1433;uid = sa; pwd = 123456; database = MyDataBase"; string strSQL = "select N
事務與資料庫連線池DBCP和C3P0與工具類DBUtils
文章目錄 事務 使用命令列方式演示事務。 使用程式碼方式演示事務 事務的特性 事務的安全隱患 讀未提交 演示 讀已提交演示 可序列化
JDBC配置問題與資料庫連線測試
jdbc下載地址 jdbc下載: 開啟網址後拉到下面,可以看到下圖所示 然後選中紅色方框中的檔案下載 下載完後解壓,然後進入到該目錄 把這個檔案 “mysql-connector-java-8.0.12.jar” 複製到java的安裝目錄下的/jre/lib/ext 如下圖: 這是我
實現JAVA與資料庫連線
一.下載JDBC 解壓就可以使用,不需要安裝 二.配置你的資料庫伺服器,我的是sql2014 設定SQL Server網路配置,啟用TCP/IP協議 重啟SQL Server服務 SQL Server 2014 網路配置:MSSQLSERVER協議→啟用“TC
多執行緒Django程式耗盡資料庫連線的問題
Django的ORM是非常好用的,哪怕不是做Web專案也值得一用,所以網上也可以找到不少使用 Django 開發非Web專案的資料,因為除了ORM之個,命令列、配置檔案等元件也非常好用。 最近用這種方式開發了一個非Web專案,而且是多執行緒的。有N個工作執行緒從
解決ArcSDE與資料庫連線後,資料編輯的問題
轉載:ArcGIS 10.2匯入ArcSDE圖層不能編輯的問題 10.0之後在SDE資料庫方面有了一些調整。 在SDE資料庫中匯入或者建立要素,如果要在桌面版中進行編輯,需要先進行註冊。步驟如下: 1、建立資料庫連線 2、新建空間要素 3
react專案實戰三 登入註冊頁面與資料庫連線
ps:此部分(第二部分)的程式碼,提交簡介為second commit 原始碼地址 需要引入依賴庫 npm install body-parser --save 接收post請求返回的引數 npm install utility --save MD5加密
Python資料庫支援:PyMySQL安裝+資料庫連線操作+捕獲異常回滾操作
PyMySQL是python3.x版本中用於連線MySQL伺服器的一個庫,Python2使用的是mysqldb PyMySQL遵循Python資料庫API v2.0規範,幷包含了pure-Python MySQL客戶端庫。 PyMySQL安裝 地址https://g
hibernate 中資料庫連線操作
hibernate.cfg.xml 中配置 <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate
PHP與資料庫的操作
PHP、資料庫、HTML關係如下: PHP連線資料庫及查詢資料庫如下: <?php //編碼 header('content-type:text/html; charset=utf-8'); //連線資料庫 然候操作資料庫 $conn = mysql
事務與資料庫連線池
文章目錄 事務 為什麼要有事務? 使用程式碼方式演示事務 事務的特性(ACID) 事務的隔離級別 事務的安全隱患【這裡都涉及到兩個事務】 解決丟失更新
關於idea SpringBoot專案中出現與資料庫連線載入不到驅動類異常
解決問題的關鍵看pom.xml是否配置,還有就是版本號要寫上,有些Mysql預設版本不被支援,我的Mysql就出現這個情況,配上version版本就好了看了半天部落格,不知道哪錯了,軟體解除安裝了又裝還是不行,結果一個Bug出現在沒配置版本號上,以後引以為戒!<depe