visual studio连接sql server数据库

06-01 1326阅读

目录

    • 1、为什么要建立连接
    • 2、在sql server中建立数据库
    • 3、visual studio连接sql server数据库
    • 4、学生信息管理系统页面布局
    • 5、添加事件逻辑
      • 5.1 页面跳转
      • 5.2 读取学生信息
      • 5.3 查询学生信息
      • 5.4 修改学生信息
      • 5.5 删除学生信息
      • 5.6 添加学生信息

        bilibili演示视频

        github源码


        1、为什么要建立连接

        sql server是关系数据库管理系统,专门用来查询、操作和管理数据库。visual studio和sql server连接后,可以读取数据库中的数据,还能对数据进行增删改查。比如,我们在visual studio中用C#语言开发一个学生信息管理软件,具体功能有读取学生信息、更改学生信息、删除学生信息、添加学生信息等,这些学生的信息就存储在sql server中,软件可以根据用户的操作读取和更改数据库中的信息。

        2、在sql server中建立数据库

        打开SQL Server Management Studio(SSMS)软件,连接到服务器。

        选择“数据库”,右键,“新建数据库”,建立一个学生信息数据库,数据库名为StuMes。

        visual studio连接sql server数据库

        输入数据库名称,点击确定。这样,学生信息数据库就建立好了。

        visual studio连接sql server数据库

        在数据库中新建一个表,用来存储学生信息,包括姓名、年龄、性别、学号。

        点击“表”,右键,“新建”–>“表”。

        visual studio连接sql server数据库

        输入列名和数据类型。

        visual studio连接sql server数据库

        visual studio连接sql server数据库

        保存,输入表名称Table_Stu,点击确定。

        visual studio连接sql server数据库

        选择StuMes数据库,右键,刷新,这时就可以看到刚刚新建的表了,目前表中只包含列名,没有实际的内容。当然,列的添加也可以通过代码的方式,我这里是手动添加的。

        visual studio连接sql server数据库

        向表中添加学生信息。点击“新建查询”,通过代码的方式向表中添加5个学生的信息。

        visual studio连接sql server数据库

        代码的意思是,向Table_Stu表中插入这5个学生的信息。

        visual studio连接sql server数据库

        insert into Table_Stu(Name,Age,Sex,StuNum) values('小王','18','男','12345')
        insert into Table_Stu(Name,Age,Sex,StuNum) values('小白','20','男','12323')
        insert into Table_Stu(Name,Age,Sex,StuNum) values('小黑','19','男','11223')
        insert into Table_Stu(Name,Age,Sex,StuNum) values('小赵','18','女','32145')
        insert into Table_Stu(Name,Age,Sex,StuNum) values('小兰','21','男','13254')
        

        全选代码,点击执行,这样就将5条学生信息记录到了数据库中的表中了。

        visual studio连接sql server数据库

        visual studio连接sql server数据库

        3、visual studio连接sql server数据库

        首先,新建一个C# Windows窗体应用 项目,我这里项目名称为DataConnect,点击确定。

        visual studio连接sql server数据库

        项目建立好后,点击“工具”–>“连接到数据库”,

        visual studio连接sql server数据库

        数据源选择“Microsoft SQL Server(SqlClient)”,还需要输入服务器名,以及选择数据库名称。

        visual studio连接sql server数据库

        在SQL Server Management Studio软件点击“文件”–>“连接对象资源管理器”,复制“服务器名称”,粘贴过来,这时就可以通过下拉框选择刚创建的学生信息数据库了。点击确定。

        visual studio连接sql server数据库

        visual studio连接sql server数据库

        这样就可以在visual studio“服务器资源管理器”中看到连接到的数据库了。

        visual studio连接sql server数据库

        4、学生信息管理系统页面布局

        双击打开Form1.cs文件,该文件对应的是图中所示的窗体,我们向窗体中拖入控件,包括1个DataGridView用于显示数据库表格数据,和5个Button用于触发事件,打开跳转界面。我们为学生信息管理系统设置了5个功能,分别是学生信息读取、学生信息查询、学生信息修改、学生信息删除、学生信息添加,DataGridView用于显示学生信息。具体的控件添加方法见WinForms添加Button控件。

        visual studio连接sql server数据库

        将第一个Button的Name改为“btnRead”,text改为“读取”;将第二个Button的Name改为“btnFind”,text改为“查询”;将第三个Button的Name改为“btnChange”,text改为“修改”;将第四个Button的Name改为“btnDel”,text改为“删除”;将第五个Button的Name改为“btnAdd”,text改为“添加”。将窗体的Text改为“学生信息管理系统”。就这样,第一个窗体的布局完毕。

        visual studio连接sql server数据库

        点击项目,右键,新建Windows窗体,新建窗体作为跳转界面,当主界面点击“查询”、“修改”、“删除”、“添加”后,会跳转到相应窗体。

        visual studio连接sql server数据库

        visual studio连接sql server数据库

        5、添加事件逻辑

        上面我们完成了页面的绘制,但是仅仅这样并没有什么用,我们运行代码后,点击界面并不会发生任何事情,这是因为我们没有添加逻辑,也就是没有写代码,winform并不知道我们添加的这些控件是用来干什么的,下面,就依次来添加功能代码。

        5.1 页面跳转

        双击“查询”控件,会跳转到该控件背后的代码。当鼠标点击控件后,btnFind_Click()函数会被执行,我们要实现的效果是点击“查询”后,页面跳转,因此就需要将代码添加到该函数下。

        visual studio连接sql server数据库

        visual studio连接sql server数据库

        visual studio连接sql server数据库

        visual studio连接sql server数据库

        同样的,给“修改”、“删除”、“添加”也加上相同的功能。

        5.2 读取学生信息

        从数据库表格中读取学生信息,DataGridView显示。

        点击项目,右键,添加类。默认命名为Class1.cs。

        visual studio连接sql server数据库

        visual studio连接sql server数据库

        using System;
        using System.Collections.Generic;
        using System.Data;
        using System.Data.SqlClient;
        using System.Linq;
        using System.Text;
        using System.Threading.Tasks;
        using System.Windows.Forms;
        namespace DataConnect
        {
            class Class1
            {
                public SqlConnection conn;
                public SqlConnection Connect()  //连接数据库
                {
                    //Data Source指定本地数据库,Initial Catalog指定数据库名称
                    //Integrated Security=True 表示使用集成安全性,也就是说,用户
                    //的Windows帐户身份将被用来验证数据库连接,而不是使用账号和密码。
                    string str = @"Data Source=.;Initial Catalog=StuMes;Integrated Security=True"; //数据库连接字符串
                    //string constr = "server=localhost;database=数据库名;uid=账号;pwd=密码;";
                    conn = new SqlConnection(str);  //创建SqlConnection对象
                    conn.Open();  //打开数据库连接
                    return conn;
                    
                }
                public SqlCommand Command(string sql) //执行一条sql命令
                {
                    SqlCommand cmd = new SqlCommand(sql, Connect());
                    return cmd;
                }
                public int Execute(string sql) //获取执行sql命令后,数据库表中数据条数的更新数量,用来判断命令是否执行成功
                {
                    return Command(sql).ExecuteNonQuery();
                }
                public SqlDataReader Read(string sql) //读取数据库中的数据
                {
                    return Command(sql).ExecuteReader();
                }
                public void Close() //关闭数据库
                {
                    conn.Close();
                }
                
            }
        }
        

        双击“读取”,进入代码,在函数中输入代码,我们要实现的效果是,点击“读取”后,程序获取数据库数据,返回连接结果,并将获取的数据显示在DataGridView。

        visual studio连接sql server数据库

        private void btnRead_Click(object sender, EventArgs e)
                {
                    Class1 c1 = new Class1(); //创建类对象
                    c1.Connect(); //连接并打开数据库
                    string sql = "SELECT * FROM Table_Stu"; //选择表中所有数据
                    SqlCommand co = c1.Command(sql);  //执行命令
                    SqlDataAdapter adapt = new SqlDataAdapter();
                    adapt.SelectCommand = co;
                    DataSet ds = new DataSet();
                    adapt.Fill(ds, "t");    //第二个参数:表名,随便取
                    dataGridView1.DataSource = ds.Tables["t"];
                    c1.Close();
                }
        

        visual studio连接sql server数据库

        5.3 查询学生信息

        通过学号进行学生信息的查询,如果查询的学生在数据库中,则返回学生的完整信息,否则,给出提示信息。

        private void btnOk_Click(object sender, EventArgs e)
                {
                    string num = txtNum.Text;
                    if(num!="")
                    {
                        Class1 c1 = new Class1();
                        c1.Connect();
                        
                        string sql = $"select * from Table_Stu where StuNum={int.Parse(num)}";
                        SqlDataReader reader = c1.Read(sql);
                        bool flag = reader.Read();
                        if (flag==true)
                        {
                            MessageBox.Show("查询成功");
                            SqlCommand co = c1.Command(sql);  //执行命令
                            SqlDataAdapter adapt = new SqlDataAdapter();
                            adapt.SelectCommand = co;
                            DataSet ds = new DataSet();
                            adapt.Fill(ds, "t");    //第二个参数:表名,随便取
                            dataGridView1.DataSource = ds.Tables["t"];
                        }
                        else
                        {
                            MessageBox.Show("不存在输入的学号信息");
                            dataGridView1.DataSource = null;
                            return;
                        }
                        c1.Close();
                    }
                    else
                    {
                        MessageBox.Show("请输入学号");
                    }
                }
        private void btnExit_Click(object sender, EventArgs e)
                {
                    this.Close();
                }
        

        visual studio连接sql server数据库

        visual studio连接sql server数据库

        5.4 修改学生信息

        先判断输入的学号是否存在于数据库中,如果不存在,就返回提示信息;否则,就进行修改。

                private void btnExit_Click(object sender, EventArgs e)
                {
                    this.Close();
                }
                private void btnOk_Click(object sender, EventArgs e)
                {
                    string name = txtName.Text;
                    string age = txtAge.Text;
                    string sex = comSex.Text;
                    string num = txtNum.Text;
                    if (num != "")
                    {
                        Class1 c1 = new Class1();
                        c1.Connect();
                        string sql = $"select * from Table_Stu where StuNum={int.Parse(num)}";
                        SqlDataReader reader = c1.Read(sql);
                        bool flag = reader.Read();
                        if (flag == true)
                        {
                            //MessageBox.Show("查询成功");
                            if (name == "" || age == "" || sex == "")
                            {
                                MessageBox.Show("请将信息填写完整");
                            }
                            else
                            {
                                sql = $"delete from Table_Stu where StuNum={int.Parse(num)}";
                                c1.Execute(sql); //执行命令
                                sql = $"insert into Table_Stu values('{name}','{age}','{sex}','{num}')";
                                c1.Execute(sql);
                                MessageBox.Show("修改信息成功");
                            }
                        }
                        else
                        {
                            MessageBox.Show("不存在输入的学号信息");
                            return;
                        }
                        c1.Close();
                    }
                    else
                    {
                        MessageBox.Show("请输入学号");
                    }
                    
                    }
                }
            }
        

        5.5 删除学生信息

        输入学号,判断是否存在于数据库中,没有则返回提示信息,有则删除该条信息。

        private void btnExit_Click(object sender, EventArgs e)
                {
                    this.Close();
                }
                private void btnOk_Click(object sender, EventArgs e)
                {
                    string num = txtNum.Text;
                    if(num!="")
                    {
                        Class1 c1 = new Class1();
                        c1.Connect();
                        string sql = $"select * from Table_Stu where StuNum={int.Parse(num)}";
                        SqlDataReader reader = c1.Read(sql);
                        bool flag = reader.Read();
                        if (flag == true)
                        {
                            sql = $"delete from Table_Stu where StuNum={int.Parse(num)}";
                            c1.Execute(sql); //执行命令
                            MessageBox.Show("删除信息成功");
                        }
                        else
                        {
                            MessageBox.Show("不存在输入的学号信息");
                            return;
                        }
                        c1.Close();
                    }
                    else
                    {
                        MessageBox.Show("请输入学号");
                    }
                }
        

        5.6 添加学生信息

        先判断输入的学生学号在数据库中是否存在,如果存在,则返回提示信息,否则就添加信息到数据库,同时,输入的信息需要完整。

        private void btnExit_Click(object sender, EventArgs e)
                {
                    this.Close();
                }
                private void btnOk_Click(object sender, EventArgs e)
                {
                    string name = txtName.Text;
                    string age = txtAge.Text;
                    string sex = comSex.Text;
                    string num = txtNum.Text;
                    Class1 c1 = new Class1();
                    c1.Connect();
                    string sql = "select * from Table_Stu";
                    SqlDataReader reader = c1.Read(sql);
                    reader.Read();
                    string tmp = reader[3].ToString();
                    if (name == "" || age == "" || sex == "" || num == "")
                    {
                        MessageBox.Show("请输入完整信息");
                    }
                    else
                    {
                        if(tmp==num)
                        {
                            MessageBox.Show("您输入的学号已存在,请重新输入");
                            return;
                        }
                        else
                        {
                            sql = $"insert into Table_Stu values('{name}','{age}','{sex}','{num}')";
                            c1.Execute(sql);
                            MessageBox.Show("添加信息成功");
                        }
                    }
                    c1.Close();
                }
        
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码