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

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u011602967/article/details/50503600

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.登陆

 private void button1_Click(object sender, EventArgs e)//登陆
        {
            //数据库连接字符串(引号中的字符串为之前复制的那段字符)
            //Data source=服务器名,Initial catalog=数据库名,User Id=sqlserver连接名,
            //Password=数据库连接密码,integrated Security=True
            string str = @"Data Source=lenovo;Initial catalog=LoginTable;integrated Security=True";
            SqlConnection conn = new SqlConnection(str);
            conn.Open(); 
            string selectsql = "Select * from login where username = '" + textBox1.Text + "' and password='" + textBox2.Text + "'";
            SqlCommand cmd = new SqlCommand(selectsql, conn);//SqlCommand对象允许你指定在数据库上执行的操作的类型。
            cmd.CommandType = CommandType.Text;
            //这就是告诉cmd执行的sql是你赋给CommandText的值里写出的sql语句,
            //如果是存储过程的话cmd.CommandType = CommandType.StoredProcedure;
            //然后CommandText='存储过程的名字',这就是告诉cmd执行的是存储过程,
            //存储过程的名字就是CommandText的值

            //CommandType是SqlCommand对象的一个属性,用于指定执行动作的形式,
            //它告诉.net接下来执行的是一个文本(text)、
            //存储过程(StoredProcedure)还是表名称(TableDirect).
            //而CommandType是一个枚举类型。
            //有三个值:text、StoredProcedure、TableDirect
            //用于表示SqlCommand对象CommandType的执行形式。

            SqlDataReader sdr;
            sdr = cmd.ExecuteReader();
            if (sdr.Read())
            {
                //label3.Text = "登陆成功!";
                //MainForm form = new MainForm();//登陆成功显示主界面
                //form.Show();
                this.DialogResult = System.Windows.Forms.DialogResult.OK;//这里实现登陆成功后关掉登录界面
                
            }
            else 
            {
                label3.Text = "登陆失败!请检查用户名或者密码重新登陆!";
		//label3在界面没有显示,因为我设置了显示为一个空格,这个可以自己随意在登陆界面的某个位置添加一个label控件用以显示提示信息
                return;
            }
            conn.Close();
        }
   2.注册

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

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

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


4.显示信息

 private void button1_Click(object sender, EventArgs e)//显示信息
        {
            string str = @"Data Source=lenovo;Initial catalog=LoginTable;integrated Security=True";
            SqlConnection conn = new SqlConnection(str);
            conn.Open();

            SqlDataAdapter sqlDap = new SqlDataAdapter("Select * from student",conn);
            DataSet dds = new DataSet();            
            sqlDap.Fill(dds);
            DataTable _table = dds.Tables[0];
            int count = _table.Rows.Count;
            dataGridView1.DataSource = _table;
            conn.Close();
            //dataGridView1.DataBind();//在网上找的方法中有这一句,在这里这一句可以不要,不然报错
            conn.Close();
        }
5.添加和修改

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

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

代码如下:

private void button1_Click(object sender, EventArgs e)//添加信息
        {
            string str = @"Data Source=lenovo;Initial catalog=LoginTable;integrated Security=True";
            SqlConnection conn = new SqlConnection(str);
            conn.Open();
            string selectsql = "insert into student values('" +textBox2.Text + "',"+textBox3.Text+")";
            SqlCommand cmd = new SqlCommand(selectsql, conn);
            cmd.CommandType = CommandType.Text;
            SqlDataReader sdr;
            sdr = cmd.ExecuteReader();
            conn.Close();
            //UpdataForm udform = new UpdataForm();

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



6.删除

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

 private void button4_Click(object sender, EventArgs e)//删除信息
        {
            string str = @"Data Source=lenovo;Initial catalog=LoginTable;integrated Security=True";
            SqlConnection conn = new SqlConnection(str);
            conn.Open();
            if (dataGridView1.SelectedRows.Count != 1) return;
            if (dataGridView1.CurrentRow == null) return;
            //string bd = dataGridView1.CurrentRow.Cells[2].Value.ToString();

            DataRowView row = dataGridView1.CurrentRow.DataBoundItem as DataRowView;
            if (row["id"] == null) return;//可以进行快速监视
            string bd = Convert.ToString(row["id"]);
            string selectsql = "delete from student where id = "+ bd +"";
            SqlCommand cmd = new SqlCommand(selectsql, conn);
            cmd.CommandType = CommandType.Text;
            //SqlDataReader sdr;
            //sdr = cmd.ExecuteReader();
           int ret = cmd.ExecuteNonQuery();//受影响的行数(总数)
           if (ret==-1)
            {
              MessageBox.Show("删除失败!");
              return;
            }
            else
            {
              MessageBox.Show("删除成功!");
            }
            conn.Close();
        }
这样,在显示了学生信息之后,点中其中的一行,再点击删除信息按钮,就能成功删除该条学生信息了,可以重新点击“查看信息”进行查看。


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

有问题欢迎指正,谢谢。








展开阅读全文

没有更多推荐了,返回首页