第五节 8登陆练习操作
生活随笔
收集整理的這篇文章主要介紹了
第五节 8登陆练习操作
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
using System;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.IO;namespace _8登陸練習(xí)操作
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void SetErrorTimes(){using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\MyProjects\C#net傳智播客\第五季ADO.NET\8登陸練習(xí)操作\8登陸練習(xí)操作\Database1.mdf;Integrated Security=True;User Instance=True")){conn.Open();using (SqlCommand upComd = conn.CreateCommand()){upComd.CommandText = "update T_User set ErrorTimes = ErrorTimes + 1 WHERE UserName=@UserName";upComd.Parameters.Add(new SqlParameter("UserName", UserName.Text));upComd.ExecuteNonQuery();}}}private void ResetErrorTimes(){using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\MyProjects\C#net傳智播客\第五季ADO.NET\8登陸練習(xí)操作\8登陸練習(xí)操作\Database1.mdf;Integrated Security=True;User Instance=True")){conn.Open();using (SqlCommand updateCmd = conn.CreateCommand()){updateCmd.CommandText = "update T_User set ErrorTimes = 0 WHERE UserName=@UserName";updateCmd.Parameters.Add(new SqlParameter("UserName", UserName.Text));updateCmd.ExecuteNonQuery();}}}private void button1_Click(object sender, EventArgs e){using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\MyProjects\C#net傳智播客\第五季ADO.NET\8登陸練習(xí)操作\8登陸練習(xí)操作\Database1.mdf;Integrated Security=True;User Instance=True")){conn.Open();using (SqlCommand cmd = conn.CreateCommand()) {cmd.CommandText = "Select * FROM T_User WHERE UserName=@UserName";cmd.Parameters.Add(new SqlParameter("UserName", UserName.Text));using (SqlDataReader reader = cmd.ExecuteReader()) {if (reader.Read()){int errotTimes = reader.GetInt32(reader.GetOrdinal("ErrorTimes"));if (errotTimes >= 3){//Console.WriteLine("對(duì)不起用戶已經(jīng)被鎖定!");MessageBox.Show("對(duì)不起用戶已經(jīng)被鎖定!");}else{string passwd = Password.Text;string t_passwd =reader.GetString(reader.GetOrdinal("Password"));if (passwd == t_passwd){//清空一下ErrorTimes//這里還沒(méi)有其它的辦法,只能另外寫(xiě)一個(gè)函數(shù)用于來(lái)更新ErrorTimes的值/*cmd.Parameters.Clear();cmd.CommandText = "update T_User set ErrorTimes = 0 WERE UserName=@UserName";cmd.Parameters.Add(new SqlParameter("UserName", UserName.Text));cmd.ExecuteNonQuery();* */ResetErrorTimes();MessageBox.Show("登陸成功!");//Console.WriteLine("登陸成功!");}else {//添加ErrorTimes/*cmd.Parameters.Clear(); //這里選清空一下Parameterscmd.CommandText = "update T_User set ErrorTimes = ErrorTimes + 1 WHERE UserName=@UserName";cmd.Parameters.Add(new SqlParameter("UserName",UserName.Text));cmd.ExecuteNonQuery();*///在同一個(gè)連接中,如果SqlDataReader沒(méi)關(guān)閉,那么是不能執(zhí)行Update之類的語(yǔ)句的SetErrorTimes();MessageBox.Show("密碼錯(cuò)誤!");//Console.WriteLine("密碼錯(cuò)誤!");}}}else {//Console.WriteLine("用戶名不存在!");MessageBox.Show("用戶名不存在!");}}}}}//文件導(dǎo)入private void button2_Click(object sender, EventArgs e){//當(dāng)點(diǎn)擊彈出窗口,然后點(diǎn)擊了確定if (openFileDialog1.ShowDialog() == DialogResult.OK) {//取得文件流using (FileStream fileStream = File.OpenRead(openFileDialog1.FileName)) {//讀取文件using (StreamReader streamReader = new StreamReader(fileStream)) {string line = null;while ((line = streamReader.ReadLine()) != null) {string[] str = line.Split('|');string name = str[0];string passwd = str[1];int errorTimes = Convert.ToInt32(str[2]);using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\MyProjects\C#net傳智播客\第五季ADO.NET\8登陸練習(xí)操作\8登陸練習(xí)操作\Database1.mdf;Integrated Security=True;User Instance=True")){conn.Open();using (SqlCommand cmd = conn.CreateCommand()){//MessageBox.Show("name:"+name+",passwd:"+passwd+",errorTimes:"+errorTimes+"");//在這里測(cè)試了一會(huì)兒,唉,自己不小心,把變量給寫(xiě)錯(cuò)了,看來(lái)以后還要多加小心才行cmd.CommandText = "Insert into T_User(UserName, Password, ErrorTimes) values(@username,@password,@errortimes) ";cmd.Parameters.Add(new SqlParameter("username", name));cmd.Parameters.Add(new SqlParameter("password", passwd));cmd.Parameters.Add(new SqlParameter("errortimes", errorTimes));cmd.ExecuteNonQuery();} }}}}}MessageBox.Show("導(dǎo)入成功!");}//文件導(dǎo)出private void button3_Click(object sender, EventArgs e){using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\MyProjects\C#net傳智播客\第五季ADO.NET\8登陸練習(xí)操作\8登陸練習(xí)操作\Database1.mdf;Integrated Security=True;User Instance=True")){conn.Open();using (SqlCommand cmd = conn.CreateCommand()){cmd.CommandText = "select * FROM T_User";//讀取多行數(shù)據(jù)using (SqlDataReader reader = cmd.ExecuteReader()){StreamWriter sw = File.CreateText(@"c:\2.txt");while (reader.Read()) //循環(huán)數(shù)據(jù){long id = reader.GetInt64(reader.GetOrdinal("Id"));string name = reader.GetString(reader.GetOrdinal("UserName"));string passwd = reader.GetString(reader.GetOrdinal("Password"));int errortimes = reader.GetInt32(reader.GetOrdinal("ErrorTimes"));sw.WriteLine("{0}|{1}|{2}|{3}",id,name,passwd,errortimes);//MessageBox.Show("id:" + id + ",name:" + name + ",passwd:" + passwd + ",errortimes:" + errortimes);}sw.Close();}}}MessageBox.Show("導(dǎo)出數(shù)據(jù)成功!");}/*省市選擇程序,數(shù)據(jù)全部來(lái)自于數(shù)據(jù)庫(kù):http://www.programfan.com/blog/article.asp?id=28128* 把createtable中的varchar改為nvarchar,在insert語(yǔ)句的漢字前面加上N(查找","替換為".N")我不做好像也沒(méi)事* ComboBox的顯示值,Items.Add的參數(shù)是Object類型,也就是可以放任意數(shù)據(jù)類型的數(shù)據(jù)* 可以設(shè)置DisplayMember屬性設(shè)定顯示的屬性,通過(guò)SelectItem屬性取得到就是選擇的條目對(duì)應(yīng)的對(duì)像,例子* 疑問(wèn): 取出來(lái)的是Object,怎么能轉(zhuǎn)換為對(duì)應(yīng)的類型?變量名只是"標(biāo)簽".顯示的值和實(shí)際的對(duì)像不一樣,在ASP.Net中也有相同的東西* 創(chuàng)建一個(gè)ProvinceItem類,將數(shù)據(jù)填充在這個(gè)對(duì)像中添加到ComBoBox中* **/private void Form1_Load(object sender, EventArgs e){//MessageBox.Show("一進(jìn)入就開(kāi)始加載省份信息!");//設(shè)定comboBox的DisplayMember屬性為name,就會(huì)顯示對(duì)像的Name屬性的值/*cb_city.DisplayMember = "Name";ProvinceItem item = new ProvinceItem();item.Id = 1;item.Name = "北京";cb_city.Items.Add(item);ProvinceItem item2 = new ProvinceItem();item2.Id = 2;item2.Name = "上海";cb_city.Items.Add(item2);*/using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\MyProjects\C#net傳智播客\第五季ADO.NET\8登陸練習(xí)操作\8登陸練習(xí)操作\Database1.mdf;Integrated Security=True;User Instance=True")){conn.Open();using (SqlCommand cmd = conn.CreateCommand()) {cmd.CommandText = "select * FROM promary ";cb_city.DisplayMember = "Name";using (SqlDataReader reader = cmd.ExecuteReader()) {while (reader.Read()) {int proid = reader.GetInt32(reader.GetOrdinal("proID"));string proName = reader.GetString(reader.GetOrdinal("proName"));ProvinceItem item = new ProvinceItem();item.Id = proid;item.Name = proName;cb_city.Items.Add(item);}}}}}private void cb_city_SelectedIndexChanged(object sender, EventArgs e){/*string text = cb_city.SelectedText;int index = cb_city.SelectedIndex;//string value = cb_city.SelectedValue;string item = cb_city.SelectedItem.ToString();MessageBox.Show("item=" + item);*/ProvinceItem item = (ProvinceItem)cb_city.SelectedItem;int proId = item.Id;string name = item.Name;//MessageBox.Show("proId:"+proId+",name:"+name);using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\MyProjects\C#net傳智播客\第五季ADO.NET\8登陸練習(xí)操作\8登陸練習(xí)操作\Database1.mdf;Integrated Security=True;User Instance=True")){conn.Open();using (SqlCommand cmd = conn.CreateCommand()) {cmd.CommandText = "select * FROM city WHERE proID="+proId;using (SqlDataReader reader = cmd.ExecuteReader()) {cb_city_small.Items.Clear();cb_city_small.SelectedIndex = -1;cb_city_small.DisplayMember = "Name";while (reader.Read()) {ProvinceItem city = new ProvinceItem();int cityID = reader.GetInt32(reader.GetOrdinal("cityID"));string cityName = reader.GetString(reader.GetOrdinal("cityName"));city.Id = cityID;city.Name = cityName;cb_city_small.Items.Add(city);}}}}}}class ProvinceItem {public string Name { get; set; }public int Id { get; set; }}
}
總結(jié)
以上是生活随笔為你收集整理的第五节 8登陆练习操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: DBHelper 使用的是存储过程
- 下一篇: iPhone开发教程之Core Data