注释:在做完用户登录界面之后,下一步增删改查,但是发现:将原来的FrmManager删除后,添加现有项增删改查,出现问题,解决两步:
【1】.手动添加两个引用;
【2】.把namespace下的东西全部改成“电影记录管理系统”,统一类的名称
1 using System;//引入核心命名空间,是一切类的基础
2 using System.Collections.Generic;//引入集合类命名空间,能够使用泛型类等集合类
3 using System.ComponentModel;//引入ComponentModel命名空间
4 using System.Data;//引入数据操作命名空间,能够使用如DataSet数据集类
5 using System.Drawing;//引入绘图命名空间,能够使用如Color的类
6 using System.Linq;//命名空间提供支持使用语言集成查询 (LINQ) 进行查询的类和接口
7 using System.Text;//引入文本操作命名空间,能够使用如StringBuilder、字符操作等类
8 using System.Windows.Forms;//引入窗体命名空间,支持窗体相关的类
9 using System.Configuration;//配置命名空间,包含应用程序配置相关的类比如ConfigurationManager【手动添加】
10 using System.Data.SqlClient;//SqlCommand( using 指令或程序集引用)【手动添加】
11
12 /********************************************************************************
13 * 通过添加引用,才可以加入我们所需要的库,而不是仅仅通过using
14 * 之前之所以可以通过using添加对应的库文件,也是因为引用中有了system,故而可以添加
15 * *****************************************************************************/
16
17 /*******************************************************
18
19 ** 修改者者: 刘要直
20
21 ** 描述: FrmLogin.cs 用于 用户登录窗体 的实现
22
23 ******************************************************/
24
25 namespace 电影记录管理系统
26 {
27 public partial class FrmLogin : Form /*FrmLogin类名,Form是基类。FrmLogin : Form代表FrmLogin类是子类,继承了父类Form。*/
28 {
29
30 public FrmLogin() /*partial代表 分部类型定义允许将类、结构或接口的定义拆分到多个文件中*/
31 {
32 InitializeComponent();/*初始化窗体上的所有控件,在窗口显示之前即初始化窗口的时候执行*/
33 }
34 //首先 设置 连接到配置文件组建 App.config
35 //当然 这里的 ConfigurationManager 系统是默认不使用其命名空间的 因此需要解析
36 //配置文件App.config里面定义了“str”,add name="str",而且str可以取不同的名字,只要ConnectionStrings["str"]对应一致即可
37 //用于连接配置文件App.config
38 string connStr = ConfigurationManager.ConnectionStrings["str"].ConnectionString;
39
40 /****************************************************************************
41 * private私有的意思是说:在其最接近的前侧大括号里,这个事件或者方法才可以被引用,超出则不行。
42 * **************************************************************************/
43 private void btnLogin_Click(object sender, EventArgs e)//两个形参
44 {
45 //其中的sender,就是你点击的btnLogin_Click,可以通过类型转换得到这个btnLogin_Click的引用:e是你点击事件的一些参数。
46 //使用SqlConnection 来连接数据库
47 //using里面的conn,其作用域仅仅局限在using囊括的{ }里
48 using (SqlConnection conn = new SqlConnection(connStr))
49 {
50 //创建sql 查询语句
51 /***************************************************************************************
52 * select * from Movie.dbo.MovieAccount where MUserName=' 刘要直 '
53 * 得到的结果是“123450”
54 * 要将字符串赋给aql,那么,就将上面查询语句分成三块作为语句输出
55 * ************************************************************************************/
56 string sql = "select MUserPwd from MovieAccount where MUserName ='"+ txtName.Text +"'";//三部分语法语句赋给sql
57
58 //创建 SqlCommand 执行指令
59 using (SqlCommand cmd = new SqlCommand(sql, conn))
60 {
61 //打开数据库连接
62 conn.Open();
63 //使用 SqlDataReader 来 读取数据库
64 using (SqlDataReader sdr = cmd.ExecuteReader())
65 {
66 //SqlDataReader 在数据库中为 从第1条数据开始 一条一条往下读
67 if (sdr.Read()) //如果读取账户成功(文本框中的用户名在数据库中存在)
68 {
69 //则将第1条 密码 赋给 字符串pwd ,并且依次往后读取 所有的密码
70 //Trim()方法为移除字符串前后的空白
71 string pwd = sdr.GetString(0).Trim();//每一行自增,需要锁定列,GetString(0),表示锁定pwd的第一列,即一连串密码!
72 //如果 文本框中输入的密码 ==数据库中的密码
73 if (pwd == txtPwd.Text)
74 {
75 //说明在该账户下 密码正确, 系统登录成功
76 MessageBox.Show("系统登录成功,正在跳转主页面...");
77 FrmManager manager = new FrmManager();
78 manager.Show();
79 this.Hide();//隐藏功能,表示隐藏当前元素,找到在编辑的窗体名字,就知道隐藏哪一个
80 }
81 else
82 {
83 //否则密码错误 再次输入密码
84 MessageBox.Show("密码错误!请再次输入!");
85 //并自动将当前密码 清空
86 txtPwd.Text = "";
87 }
88 }
89 else
90 {
91 //如果读取账户数据失败, 则用户名不存在
92 MessageBox.Show("用户名不存在,请重新输入!");
93 //并自动清空账户名
94 txtName.Text = "";
95 }
96 }
97 }
98 }
99 }
100 private void FrmLogin_Load(object sender, EventArgs e)
101 {
102 /************************************************************
103 * 双击控件,跳转到事件编辑代码处,要多通过属性那里操作,不仅限于双击,登录按钮默认单击,双击也进入单击编辑界面
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);//实参,名字可以相同
127 //int c= add(5, 6);//函数调用,这里是 名称(参数1,参数2)
128 }
129 }
130
131 /****************************************************************************
132 * private int add(int a, int b) //私有+类型+名称(类型 参数1,类型 参数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;//配置命名空间,包含应用程序配置相关的类比如ConfigurationManager【手动添加】
10 using System.Data.SqlClient;//SqlCommand( using 指令或程序集引用)【手动添加】
11
12 namespace 电影记录管理系统
13 {
14 public partial class FrmManager : Form
15 {
16 public FrmManager()
17 {
18 InitializeComponent();
19 }
20 //首先 设置 连接到配置文件组建 App.config ,显示的新的窗体要/////实现插入数据
21 //当然 这里的 ConfigurationManager 系统是默认不使用其命名空间的 因此需要解析
22 //配置文件App.config里面定义了“str”,add name="str",而且str可以取不同的名字,只要ConnectionStrings["str"]对应一致即可
23 //用于连接配置文件App.config/////这里要向数据库里写入记录,显示的窗体要按照登陆时候的做法进行
24 //比如说在物资管理系统中,我们就要把配置文件中的所有主机名,
25 //Data Source=127.0.0.1(访问本级,此处写pc20150330主机名);Initial Catalog=Movie(数据库名);Persist Security Info=True;User ID=sa;Password=123456(修改过后要一致);
26 string connStr = ConfigurationManager.ConnectionStrings["str"].ConnectionString;
27
28 /****************************************************************************
29 * private私有的意思是说:在其最接近的前侧大括号里,这个事件或者方法才可以被引用,超出则不行。
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 参见配置文件那一行,就是启动数据库连接操作
36 {
37 conn.Open();
38 //+号两个一共三部分,就是要如此格式操作,注意修改应用
39 string sql = "INSERT INTO MovieText (MText) VALUES('" + richTextBox1.Text + "')";//数据库操作指令(建表时记得选作标识符,自动+1)
40 MessageBox.Show(sql);
41 SqlCommand cmd = new SqlCommand(sql, conn);//实例化cmd
42 cmd.ExecuteNonQuery();//相应的操作
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 电影记录管理系统
4 {
5 static class Program
6 {
7 /// <summary>
8 /// 应用程序的主入口点。
9 /// </summary>//注释
10 [STAThread]
11 static void Main()
12 {
13 Application.EnableVisualStyles();
14 Application.SetCompatibleTextRenderingDefault(false);
15 Application.Run(new FrmLogin());
16 }
17 }
18 }