注釋?zhuān)涸谧鐾暧脩?hù)登錄界面之后,下一步增刪改查,但是發(fā)現(xiàn):將原來(lái)的FrmManager刪除后,添加現(xiàn)有項(xiàng)增刪改查,出現(xiàn)問(wèn)題,解決兩步:
【1】.手動(dòng)添加兩個(gè)引用;
【2】.把namespace下的東西全部改成“電影記錄管理系統(tǒng)”,統(tǒng)一類(lèi)的名稱(chēng)
1 using System;//引入核心命名空間,是一切類(lèi)的基礎(chǔ) 2 using System.Collections.Generic;//引入集合類(lèi)命名空間,能夠使用泛型類(lèi)等集合類(lèi) 3 using System.ComponentModel;//引入ComponentModel命名空間 4 using System.Data;//引入數(shù)據(jù)操作命名空間,能夠使用如DataSet數(shù)據(jù)集類(lèi) 5 using System.Drawing;//引入繪圖命名空間,能夠使用如Color的類(lèi) 6 using System.Linq;//命名空間提供支持使用語(yǔ)言集成查詢(xún) (LINQ) 進(jìn)行查詢(xún)的類(lèi)和接口 7 using System.Text;//引入文本操作命名空間,能夠使用如StringBuilder、字符操作等類(lèi) 8 using System.Windows.Forms;//引入窗體命名空間,支持窗體相關(guān)的類(lèi) 9 using System.Configuration;//配置命名空間,包含應(yīng)用程序配置相關(guān)的類(lèi)比如ConfigurationManager【手動(dòng)添加】 10 using System.Data.SqlClient;//SqlCommand( using 指令或程序集引用)【手動(dòng)添加】 11 12 /******************************************************************************** 13 * 通過(guò)添加引用,才可以加入我們所需要的庫(kù),而不是僅僅通過(guò)using 14 * 之前之所以可以通過(guò)using添加對(duì)應(yīng)的庫(kù)文件,也是因?yàn)橐弥杏辛藄ystem,故而可以添加 15 * *****************************************************************************/ 16 17 /******************************************************* 18 19 ** 修改者者: 劉要直 20 21 ** 描述: FrmLogin.cs 用于 用戶(hù)登錄窗體 的實(shí)現(xiàn) 22 23 ******************************************************/ 24 25 namespace 電影記錄管理系統(tǒng) 26 { 27 public partial class FrmLogin : Form /*FrmLogin類(lèi)名,F(xiàn)orm是基類(lèi)。FrmLogin : Form代表FrmLogin類(lèi)是子類(lèi),繼承了父類(lèi)Form。*/ 28 { 29 30 public FrmLogin() /*partial代表 分部類(lèi)型定義允許將類(lèi)、結(jié)構(gòu)或接口的定義拆分到多個(gè)文件中*/ 31 { 32 InitializeComponent();/*初始化窗體上的所有控件,在窗口顯示之前即初始化窗口的時(shí)候執(zhí)行*/ 33 } 34 //首先 設(shè)置 連接到配置文件組建 App.config 35 //當(dāng)然 這里的 ConfigurationManager 系統(tǒng)是默認(rèn)不使用其命名空間的 因此需要解析 36 //配置文件App.config里面定義了“str”,add name="str",而且str可以取不同的名字,只要ConnectionStrings["str"]對(duì)應(yīng)一致即可 37 //用于連接配置文件App.config 38 string connStr = ConfigurationManager.ConnectionStrings["str"].ConnectionString; 39 40 /**************************************************************************** 41 * PRivate私有的意思是說(shuō):在其最接近的前側(cè)大括號(hào)里,這個(gè)事件或者方法才可以被引用,超出則不行。 42 * **************************************************************************/ 43 private void btnLogin_Click(object sender, EventArgs e)//兩個(gè)形參 44 { 45 //其中的sender,就是你點(diǎn)擊的btnLogin_Click,可以通過(guò)類(lèi)型轉(zhuǎn)換得到這個(gè)btnLogin_Click的引用:e是你點(diǎn)擊事件的一些參數(shù)。 46 //使用SqlConnection 來(lái)連接數(shù)據(jù)庫(kù) 47 //using里面的conn,其作用域僅僅局限在using囊括的{ }里 48 using (SqlConnection conn = new SqlConnection(connStr)) 49 { 50 //創(chuàng)建sql 查詢(xún)語(yǔ)句 51 /*************************************************************************************** 52 * select * from Movie.dbo.MovieAccount where MUserName=' 劉要直 ' 53 * 得到的結(jié)果是“123450” 54 * 要將字符串賦給aql,那么,就將上面查詢(xún)語(yǔ)句分成三塊作為語(yǔ)句輸出 55 * ************************************************************************************/ 56 string sql = "select MUserPwd from MovieAccount where MUserName ='"+ txtName.Text +"'";//三部分語(yǔ)法語(yǔ)句賦給sql 57 58 //創(chuàng)建 SqlCommand 執(zhí)行指令 59 using (SqlCommand cmd = new SqlCommand(sql, conn)) 60 { 61 //打開(kāi)數(shù)據(jù)庫(kù)連接 62 conn.Open(); 63 //使用 SqlDataReader 來(lái) 讀取數(shù)據(jù)庫(kù) 64 using (SqlDataReader sdr = cmd.ExecuteReader()) 65 { 66 //SqlDataReader 在數(shù)據(jù)庫(kù)中為 從第1條數(shù)據(jù)開(kāi)始 一條一條往下讀 67 if (sdr.Read()) //如果讀取賬戶(hù)成功(文本框中的用戶(hù)名在數(shù)據(jù)庫(kù)中存在) 68 { 69 //則將第1條 密碼 賦給 字符串pwd ,并且依次往后讀取 所有的密碼 70 //Trim()方法為移除字符串前后的空白 71 string pwd = sdr.GetString(0).Trim();//每一行自增,需要鎖定列,GetString(0),表示鎖定pwd的第一列,即一連串密碼! 72 //如果 文本框中輸入的密碼 ==數(shù)據(jù)庫(kù)中的密碼 73 if (pwd == txtPwd.Text) 74 { 75 //說(shuō)明在該賬戶(hù)下 密碼正確, 系統(tǒng)登錄成功 76 MessageBox.Show("系統(tǒng)登錄成功,正在跳轉(zhuǎn)主頁(yè)面..."); 77 FrmManager manager = new FrmManager(); 78 manager.Show(); 79 this.Hide();//隱藏功能,表示隱藏當(dāng)前元素,找到在編輯的窗體名字,就知道隱藏哪一個(gè) 80 } 81 else 82 { 83 //否則密碼錯(cuò)誤 再次輸入密碼 84 MessageBox.Show("密碼錯(cuò)誤!請(qǐng)?jiān)俅屋斎?"); 85 //并自動(dòng)將當(dāng)前密碼 清空 86 txtPwd.Text = ""; 87 } 88 } 89 else 90 { 91 //如果讀取賬戶(hù)數(shù)據(jù)失敗, 則用戶(hù)名不存在 92 MessageBox.Show("用戶(hù)名不存在,請(qǐng)重新輸入!"); 93 //并自動(dòng)清空賬戶(hù)名 94 txtName.Text = ""; 95 } 96 } 97 } 98 } 99 }100 private void FrmLogin_Load(object sender, EventArgs e)101 {102 /************************************************************103 * 雙擊控件,跳轉(zhuǎn)到事件編輯代碼處,要多通過(guò)屬性那里操作,不僅限于雙擊,登錄按鈕默認(rèn)單擊,雙擊也進(jìn)入單擊編輯界面104 * ***********************************************************/105 }106 107 private void label2_Click(object sender, EventArgs e)108 {109 110 }111 112 private void txtPwd_TextChanged(object sender, EventArgs e)113 {114 115 }116 117 private void txtName_TextChanged(object sender, EventArgs e)118 {119 120 }121 122 private void btnLogin_KeyPress(object sender, KeyPressEventArgs e)//形參123 {124 if (e.KeyChar == 13)125 {126 btnLogin_Click(sender, e);//實(shí)參,名字可以相同127 //int c= add(5, 6);//函數(shù)調(diào)用,這里是 名稱(chēng)(參數(shù)1,參數(shù)2)128 }129 }130 131 /****************************************************************************132 * private int add(int a, int b) //私有+類(lèi)型+名稱(chēng)(類(lèi)型 參數(shù)1,類(lèi)型 參數(shù)2)133 * { 134 * return a + b;135 * }136 ***************************************************************************/137 138 139 }140 }
1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Windows.Forms; 9 using System.Configuration;//配置命名空間,包含應(yīng)用程序配置相關(guān)的類(lèi)比如ConfigurationManager【手動(dòng)添加】10 using System.Data.SqlClient;//SqlCommand( using 指令或程序集引用)【手動(dòng)添加】11 12 namespace 電影記錄管理系統(tǒng)13 {14 public partial class FrmManager : Form15 {16 public FrmManager()17 {18 InitializeComponent();19 }20 //首先 設(shè)置 連接到配置文件組建 App.config ,顯示的新的窗體要/////實(shí)現(xiàn)插入數(shù)據(jù)21 //當(dāng)然 這里的 ConfigurationManager 系統(tǒng)是默認(rèn)不使用其命名空間的 因此需要解析22 //配置文件App.config里面定義了“str”,add name="str",而且str可以取不同的名字,只要ConnectionStrings["str"]對(duì)應(yīng)一致即可23 //用于連接配置文件App.config/////這里要向數(shù)據(jù)庫(kù)里寫(xiě)入記錄,顯示的窗體要按照登陸時(shí)候的做法進(jìn)行24 //比如說(shuō)在物資管理系統(tǒng)中,我們就要把配置文件中的所有主機(jī)名,25 //Data Source=127.0.0.1(訪(fǎng)問(wèn)本級(jí),此處寫(xiě)pc20150330主機(jī)名);Initial Catalog=Movie(數(shù)據(jù)庫(kù)名);Persist Security Info=True;User ID=sa;PassWord=123456(修改過(guò)后要一致);26 string connStr = ConfigurationManager.ConnectionStrings["str"].ConnectionString;27 28 /****************************************************************************29 * private私有的意思是說(shuō):在其最接近的前側(cè)大括號(hào)里,這個(gè)事件或者方法才可以被引用,超出則不行。30 * **************************************************************************/31 32 private void button1_Click(object sender, EventArgs e)33 {34 MessageBox.Show(this.richTextBox1.Text + "保存成功!");35 using (SqlConnection conn = new SqlConnection(connStr))//connStr 參見(jiàn)配置文件那一行,就是啟動(dòng)數(shù)據(jù)庫(kù)連接操作36 {37 conn.Open();38 //+號(hào)兩個(gè)一共三部分,就是要如此格式操作,注意修改應(yīng)用39 string sql = "INSERT INTO MovieText (MText) VALUES('" + richTextBox1.Text + "')";//數(shù)據(jù)庫(kù)操作指令(建表時(shí)記得選作標(biāo)識(shí)符,自動(dòng)+1)40 MessageBox.Show(sql);41 SqlCommand cmd = new SqlCommand(sql, conn);//實(shí)例化cmd42 cmd.ExecuteNonQuery();//相應(yīng)的操作43 conn.Close();44 }45 }46 }47 }
1 <?xml version="1.0" encoding="utf-8" ?> //配置文件2 <configuration>3 <connectionStrings>4 5 <add name="str" connectionString="Data Source=PC201503301006;Initial Catalog=Movie;Integrated Security=True"/>6 </connectionStrings>7 </configuration>
1 using System.Windows.Forms; 2 3 namespace 電影記錄管理系統(tǒng) 4 { 5 static class Program 6 { 7 /// <summary> 8 /// 應(yīng)用程序的主入口點(diǎn)。 9 /// </summary>//注釋10 [STAThread]11 static void Main()12 {13 application.EnableVisualStyles();14 Application.SetCompatibleTextRenderingDefault(false);15 Application.Run(new FrmLogin());16 }17 }18 }
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注