zoukankan      html  css  js  c++  java
  • 初始sql server

    原文:https://www.cnblogs.com/lucky-willie/p/12128698.html

    工具:

    1.Visual Studio 2019

    2.SQL Server数据库(我使用的2008)

    操作:

    1.打开SQL Server,打开后会看到数据库的初始链接界面。(如下图)

    2..复制上图中的“服务器名称”,然后点击“连接”,进入数据库。

    3.打开vs,创建好自己要用的项目,我写的项目名称叫做:‘finnal_test’,要做的是数据库综合实习关于奖学金评定的管理系统

    4.工具->连接到数据库->在服务器名里面,粘贴复制的服务器名

    5.在下面选择自己要连接的数据库名称(也可以手动输入,我连接的是我自己创建的数据库:shaohui),确定

     6.打开“服务器资源管理器”,会看到有下图信息,点击“表”可以看到数据库里面创建的数据表

    连接代码:

    完成上述操作后只是把数据库添加到了vs里,要想在项目里对数据库进行编辑,还需要写一些代码。

    1.打开自己的项目,选择项目->添加类

     类名自己起,我这里是SQLServerDataBase

    2.打开类文件,写入以下代码。

    复制代码
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data;
    using System.Data.SqlClient;
    using System.Threading.Tasks;//必要的命名空间
    namespace finnal_test
    {
        class SQLServerDataBase
        {
            //MySqlCon部分,每个人不相同,后面我会进行说明,下面的是我计算机相应的配置
            private string MySqlCon = "Data Source=DESKTOP-8LDERGD\\SQLEXPRESS;Initial Catalog = shaohui; Integrated Security = True";
    
            public DataTable ExecuteQuery(string sqlStr)//用于查询;其实是相当于提供一个可以传参的函数,到时候写一个sql语句,存在string里,传给这个函数,就会自动执行。
            {
                SqlConnection con = new SqlConnection(MySqlCon);
                con.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = con;
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = sqlStr;
                DataTable dt = new DataTable();
                SqlDataAdapter msda = new SqlDataAdapter(cmd);
                msda.Fill(dt);
                con.Close();
                return dt;
            }
            public int ExecuteUpdate(string sqlStr)//用于增删改;
            {
                SqlConnection con = new SqlConnection(@MySqlCon);
                con.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = con;
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = sqlStr;
                int iud = 0;
                iud = cmd.ExecuteNonQuery();
                con.Close();
                return iud;
            }
        
        }
    }            
    复制代码

    3.修改代码里的MySqlCon,这一步用来连接到数据库,至关重要。

    在“服务器资源管理”处选中数据库,然后可以在“属性”窗口找到“连接字符串”,复制其内容,赋给MySqlCon。比如我修改后是:

    MySqlCon = "Data Source=DESKTOP-8LDERGD\\SQLEXPRESS;Initial Catalog = shaohui; Integrated Security = True";

                          

    完成这些操作后,就可以在form里写代码来修改数据库了。

    增删改查:

    增删改查的实现都是sql语句,把写好的sql语句赋给字符串,然后执行。这里需要注意的是,增删改是用上面的ExecuteUpdate()函数,而查询是用的ExecuteQuery()函数。接下来以我的代码进行举例:
    1.查询,不显示查询结果(数据表名称为DBuser)

    复制代码
    //查询操作,验证身份
                string my_user = username.Text;//账号
                string my_pass = password.Text;//密码
                string my_id = authority.Text;//身份
           SQLServerDataBase SQLConn = new SQLServerDataBase(); DataTable d1 = new DataTable(); string sql = "select * from DBuser where username = '"+ my_user + "' and password = '"+ my_pass + "' and id = '"+my_id+"'"; d1 = SQLConn.ExecuteQuery(sql); if(d1!=null&&d1.Rows.Count>0) { this.Hide(); if(my_id=="教师") { HomeForm homeForm = new HomeForm(); homeForm.Show(); } else if(my_id == "管理员") { Administrator administrator = new Administrator(); administrator.Show(); } else if(my_id == "学生") { Student student = new Student(my_user); student.Show(); } } else { MessageBox.Show("账号或密码错误!!"); username.Text = ""; password.Text = ""; }
    复制代码

    2.查询,显示查询结果,我这里是将查询到的结果放在了datagridview控件中

    复制代码
    private void match2DB(string my_sql)
            {
            SQLServerDataBase SQLConn = new SQLServerDataBase(); dataGridView_match.Rows.Clear();//清空datagridview中数据 int rank = 1;//记录排名 DataTable d1 = new DataTable(); string sql = my_sql; d1 = SQLConn.ExecuteQuery(sql); if (d1 != null && d1.Rows.Count > 0) { for (int n = 0; n < d1.Rows.Count; n++) { dataGridView_match.Rows.Add(1); dataGridView_match.Rows[n].Cells["num"].Value = rank.ToString(); dataGridView_match.Rows[n].Cells["class2"].Value = d1.Rows[n]["class"]; dataGridView_match.Rows[n].Cells["no2"].Value = d1.Rows[n]["no"]; dataGridView_match.Rows[n].Cells["name2"].Value = d1.Rows[n]["name"]; dataGridView_match.Rows[n].Cells["match_name2"].Value = d1.Rows[n]["match_name"]; dataGridView_match.Rows[n].Cells["match_grade2"].Value = d1.Rows[n]["match_grade"]; rank++; } //偶数行颜色设置 for (int i = 0; i < dataGridView_match.RowCount; i++) { if (i % 2 == 1) dataGridView_match.Rows[i].DefaultCellStyle.BackColor = Color.Silver; } } }
    复制代码

    3.除了查询操作之外,增加,修改,删除都是使用ExecuteUpdate函数,使用方法类似,下面只用增加作为例子

    复制代码
    SQLServerDataBase SQLConn = new SQLServerDataBase();
    string sql = "insert into DBuser values('" + username + "','" + password + "','" + id + "')";
                    int result = SQLConn.ExecuteUpdate(sql);//执行后会有返回值,是int类型,如果执行失败会返回0;
                    if (result != 0)
                    {
                        MessageBox.Show("添加成功", "添加结果", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        MessageBox.Show("添加失败!请重新添加!", "添加结果", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
    复制代码

    4.代码中SQLServerDataBase SQLConn = new SQLServerDataBase();主要就是创建了一个连接数据库类的对象,由于对数据库操作时多次重复使用,所以建议可以在每一个窗口定义为全局变量

  • 相关阅读:
    Atiitt 对象转换json 序列化规范 Java 循环引用的解决 设置序列化层次深度 去除不必的属性 太长不方便月度 jsonObject.remove("num1"); Prety fo
    Atitit 研发管理之道 attilax总结 艾龙 著 研发管理 1 简介 1 基本理念 2 基本原则 2 内容 3 团队建设 4 流程设计 4 成本管理 4 项目管理 4 绩效管理 4 风险管理
    Atitit 软件设计中的各种图纸 uml 之道 1. 常见设计成果与图纸 1 1.1. ui原型图与html 1 1.2. 业务逻辑 伪代码 各种uml图 1 1.3. 业务逻辑 流程图 ns
    Atitit ForkJoinTask的使用以及与futuretask的区别 1.1. Forkjoin原理图 1 1.2. Fork/Join使用两个类完成以上两件事情:ForkJoinTask
    Atitit 利用前端cache indexdb localStorage 缓存提升性能优化attilax总结 1.1. indexdb 更加强大点,但是结果测试,api比较繁琐 使用叫麻烦些 1
    Atitit pg10分区 总结 1.1. create table tmp_log (  1 1.2. 创建索引 1 1.3. 查看表 in pgadmin4 2 2. 二 分区表管理 2 2.1
    ASP.NET在IIS上部署使用Oracle数据库无法连接数据库解决方法(转载)
    .net3.5SP1开发项目引发的血案
    仿QQ弹出窗口
    ASP.NET中的数据绑定:哪个更快?
  • 原文地址:https://www.cnblogs.com/chinayixia/p/13677983.html
Copyright © 2011-2022 走看看