C#窗体应用程序 vs + sql server2008连接举例,简单的学生信息管理系统

C#窗体应用程序 vs + sql server2008连接举例,简单的学生信息管理系统:http://blog.csdn.net/u011602967/article/details/50503600,转发请注明出处。

电脑 win8.1 专业版 64位

vs 2013 + sql server2008

sql server2008安装教程:点击打开链接

sql server 2008常见问题以及解决方法:http://blog.csdn.net/u011602967/article/details/50501906


看了几天关于C#介绍的书后,boss开始让我自己创建一个C#窗体应用程序,连接数据库sql server,并实现简单的添删改查。我这里制作了一个简单的学生信息管理系统,实现登陆以及学生信息的添删改查操作。


第一部分  数据库的准备工作 

     1.打开配置管理器,启动server(MSSQLSERVER)服务,连接本地服务器

     2.建立新的数据库LoginTable,并在其目录下建立两张新表如下图,建立新表的方式这里就不详细叙述了,表login和student,分别设计如下:

登陆表设计用户名以及登陆密码

学生表设计学号id、学生姓名sname、分数score,这里的学生表里面的学号本来应该是连续的。这里有必要说明一下:我这里设置了id为标识,这一栏不用自己设置,系统会自动生成连续的编号,现在之所以不连续,是因为我写好了窗体应用程序后进行测试,所以删除了一部分的数据。


第二部分  vs与数据库的连接

    1.打开vs,新建一个窗体应用程序,(我这里没有修改默认的名称)默认命名为WindowsFormsApplication3,名称可以自己随意修改。设计Form1窗体为下图所示:

这里为了省事,注册和登陆用的是同一个窗体。

    2.接下来就是数据库和vs的连接部分了,在vs工具栏中选择 工具—>连接到数据库—>Microsoft sql server—>继续 ,在弹出来的窗体中输入自己的服务器名,在下面的“选择或输入数据库名称”的下拉项中会自动匹配你已经建立好的数据库LoginTable,选择好了之后,直接点击确定就over啦,数据库和vs的连接就杠杠的没有问题啦!


连接成功后能在vs操作界面的左边看到连接好的数据库:


  

第三部分 代码实现部分

        然后就是我们的代码部分了,双击自己设计的Form1中的button按钮登陆,进入代码设计界面,填写如下代码,我这里也是初学,所以有很详细的代码解释的注释,这里强调一点,一定要记得在最前面添加代码 using System.Data.SqlClient;!!!:   

   1.登陆


  
  
  1. private void button1_Click(object sender, EventArgs e)//登陆
  2. {
  3. //数据库连接字符串(引号中的字符串为之前复制的那段字符)
  4. //Data source=服务器名,Initial catalog=数据库名,User Id=sqlserver连接名,
  5. //Password=数据库连接密码,integrated Security=True
  6. string str = @"Data Source=lenovo;Initial catalog=LoginTable;integrated Security=True";
  7. SqlConnection conn = new SqlConnection(str);
  8. conn.Open();
  9. string selectsql = "Select * from login where username = '" + textBox1.Text + "' and password='" + textBox2.Text + "'";
  10. SqlCommand cmd = new SqlCommand(selectsql, conn); //SqlCommand对象允许你指定在数据库上执行的操作的类型。
  11. cmd.CommandType = CommandType.Text;
  12. //这就是告诉cmd执行的sql是你赋给CommandText的值里写出的sql语句,
  13. //如果是存储过程的话cmd.CommandType = CommandType.StoredProcedure;
  14. //然后CommandText='存储过程的名字',这就是告诉cmd执行的是存储过程,
  15. //存储过程的名字就是CommandText的值
  16. //CommandType是SqlCommand对象的一个属性,用于指定执行动作的形式,
  17. //它告诉.net接下来执行的是一个文本(text)、
  18. //存储过程(StoredProcedure)还是表名称(TableDirect).
  19. //而CommandType是一个枚举类型。
  20. //有三个值:text、StoredProcedure、TableDirect
  21. //用于表示SqlCommand对象CommandType的执行形式。
  22. SqlDataReader sdr;
  23. sdr = cmd.ExecuteReader();
  24. if (sdr.Read())
  25. {
  26. //label3.Text = "登陆成功!";
  27. //MainForm form = new MainForm();//登陆成功显示主界面
  28. //form.Show();
  29. this.DialogResult = System.Windows.Forms.DialogResult.OK; //这里实现登陆成功后关掉登录界面
  30. }
  31. else
  32. {
  33. label3.Text = "登陆失败!请检查用户名或者密码重新登陆!";
  34. //label3在界面没有显示,因为我设置了显示为一个空格,这个可以自己随意在登陆界面的某个位置添加一个label控件用以显示提示信息
  35. return;
  36. }
  37. conn.Close();
  38. }
   2.注册

注册的代码实现方法和登陆基本相同,只需把上述代码中的sql查询语句改成:insert into login values('" + textBox1.Text + "','" + textBox2.Text + "')  即可实现注册功能。

  3.新建一个窗体 命名为MainForm,进行如下设计:

关于"关联"的方法,在DataGirdView控件中编辑列,进行如下操作:


4.显示信息


  
  
  1. private void button1_Click(object sender, EventArgs e)//显示信息
  2. {
  3. string str = @"Data Source=lenovo;Initial catalog=LoginTable;integrated Security=True";
  4. SqlConnection conn = new SqlConnection(str);
  5. conn.Open();
  6. SqlDataAdapter sqlDap = new SqlDataAdapter( "Select * from student",conn);
  7. DataSet dds = new DataSet();
  8. sqlDap.Fill(dds);
  9. DataTable _table = dds.Tables[ 0];
  10. int count = _table.Rows.Count;
  11. dataGridView1.DataSource = _table;
  12. conn.Close();
  13. //dataGridView1.DataBind();//在网上找的方法中有这一句,在这里这一句可以不要,不然报错
  14. conn.Close();
  15. }
5.添加和修改

新建一个窗体,设计如下:

添加和修改的方法相似,这里……呵呵你懂了,都是为了省事方便,设计在同一个窗体中了。。。

代码如下:


  
  
  1. private void button1_Click(object sender, EventArgs e)//添加信息
  2. {
  3. string str = @"Data Source=lenovo;Initial catalog=LoginTable;integrated Security=True";
  4. SqlConnection conn = new SqlConnection(str);
  5. conn.Open();
  6. string selectsql = "insert into student values('" +textBox2.Text + "',"+textBox3.Text+ ")";
  7. SqlCommand cmd = new SqlCommand(selectsql, conn);
  8. cmd.CommandType = CommandType.Text;
  9. SqlDataReader sdr;
  10. sdr = cmd.ExecuteReader();
  11. conn.Close();
  12. //UpdataForm udform = new UpdataForm();
  13. this.DialogResult = System.Windows.Forms.DialogResult.OK;
  14. }

  
  
  1. <pre name= "code" class= "csharp"> private void button2_Click(object sender, EventArgs e)//修改信息
  2. {
  3. string str = @"Data Source=lenovo;Initial catalog=LoginTable;integrated Security=True";
  4. SqlConnection conn = new SqlConnection(str);
  5. conn.Open();
  6. string selectsql = "update student set score = "+ textBox3.Text + " where sname = '"+textBox2.Text+ "'";
  7. SqlCommand cmd = new SqlCommand(selectsql, conn);
  8. cmd.CommandType = CommandType.Text;
  9. SqlDataReader sdr;
  10. sdr = cmd.ExecuteReader();
  11. //UpdataForm udform2 = new UpdataForm();
  12. this.DialogResult = System.Windows.Forms.DialogResult.Yes;
  13. conn.Close();
  14. }
 
 

6.删除

   删除的方法的话,这里多说几句。我想要实现的是鼠标在DataGirdView控件中选中一行学生信息,然后进行删除,实现代码如下:


  
  
  1. private void button4_Click(object sender, EventArgs e)//删除信息
  2. {
  3. string str = @"Data Source=lenovo;Initial catalog=LoginTable;integrated Security=True";
  4. SqlConnection conn = new SqlConnection(str);
  5. conn.Open();
  6. if (dataGridView1.SelectedRows.Count != 1) return;
  7. if (dataGridView1.CurrentRow == null) return;
  8. //string bd = dataGridView1.CurrentRow.Cells[2].Value.ToString();
  9. DataRowView row = dataGridView1.CurrentRow.DataBoundItem as DataRowView;
  10. if (row[ "id"] == null) return; //可以进行快速监视
  11. string bd = Convert.ToString(row[ "id"]);
  12. string selectsql = "delete from student where id = "+ bd + "";
  13. SqlCommand cmd = new SqlCommand(selectsql, conn);
  14. cmd.CommandType = CommandType.Text;
  15. //SqlDataReader sdr;
  16. //sdr = cmd.ExecuteReader();
  17. int ret = cmd.ExecuteNonQuery(); //受影响的行数(总数)
  18. if (ret== -1)
  19. {
  20. MessageBox.Show( "删除失败!");
  21. return;
  22. }
  23. else
  24. {
  25. MessageBox.Show( "删除成功!");
  26. }
  27. conn.Close();
  28. }
这样,在显示了学生信息之后,点中其中的一行,再点击删除信息按钮,就能成功删除该条学生信息了,可以重新点击“查看信息”进行查看。


到这里基本就已经结束了,博主要继续去学习新的知识去了,各位初学者一起加油。

有问题欢迎指正,谢谢。








猜你喜欢

转载自blog.csdn.net/zhuangyuanlang1/article/details/88430255