菜鸟的数据库实战-1-连接-字符串
老铁们大家好啊,我是菜鸟思奎,今天我学习的是数据库和前端的连接用到的字符串,如果有什么纰漏希望大家在评论区指正。阿里嘎多。
我的环境是Visual Studio Community 2017 + Microsoft SQL Server 2017 RC1(主要是因为新版的UI更好看……好吧,代码补全和自动纠错也有一部分原因),通过C#的窗体应用来调试和展示相关的界面和数据。
现在的目的也只是需要测试是否连接数据库成功嘛,那就可以先建立一个空的数据库来用于测试。在ssms中新建一个查询输入以下代码并选择执行就好了哦。因为win10奇奇怪怪的权限问题,我把新建的数据库放在C盘的practice文件夹下。
1 --创建数据库; 2 USE master; 3 IF DB_ID('EduBase2017') IS NOT NULL 4 BEGIN 5 ALTER DATABASE EduBase2017 6 SET SINGLE_USER 7 WITH ROLLBACK IMMEDIATE; 8 DROP DATABASE EduBase2017; 9 END 10 CREATE DATABASE EduBase2017 11 ON 12 (NAME='Datafile' 13 ,FILENAME='C:\practice\DataFile.mdf') 14 LOG ON 15 (NAME='Logfile' 16 ,FILENAME='C:\practice\Logfile.ldf');
接下来呢,就是建立一个简单的窗体应用程序稍微展示一下嘛,那UI就随便画画……大概就这样
我现在的目的就是通过代码让前段和后端的数据库连接起来嘛,那很明显就是需要调用数据库嘛,但是默认的命名空间是没有涵盖这部分功能的,这样的话我们就需要这样,在文件顶部加下面这行代码让访问SQL Server所需的各类对象包含进来:
1 using System.Data.SqlClient;
命名空间加了就可以美滋滋的用SQL的函数了。在按钮的click事件里我们首先需要声明并实例化SQL连接(没连接就没得玩了不是……),也就是:
1 SqlConnection sqlConnection1 = new SqlConnection();
根据国际惯例,C#的变量也就是我这里的sqlConnection1,第一位是需要小写字母开头的,后面的都是大写字母分割(创造语言的大佬怎么想的我也不知道)。下一步就是这波最重要的连接字符串了。在字符串变量中,描述连接字符串所需的服务器地址、数据库名称、集成安全性(即是否使用Windows验证)。如果SQL Server服务不在本地的话就需要知道具体的地址,还需要在服务端开启远程访问功能,否则是没办法进入服务器的。我的SQL Server就是在本地的,并且直接可以用Windows身份验证登录,所以我的连接字符串就可以写成这样:
1 sqlConnection1.ConnectionString = "Server=(Local);Database=EduBase2017;Integrated Security=sspi";
Integrated Security就是集成安全性选项,我的Windows身份验证直接写sspi就够了,如果是用户名和密码登陆的话就不需要Integrated Security这部分,直接写上uid=sa;password=password就好了
其中,sa是SQL Server安装的时候添加的系统管理员,password就是安装的时候设置的密码,我在安装的时候就没设置,所以这里没办法测试。
下一步就是打开SQL连接并且用一个窗体演示一下相关的数据了。
1 sqlConnection1.Open(); //打开SQL连接; 2 MessageBox.Show //在消息框中显示; 3 ("连接状态:" + sqlConnection1.State.ToString() //消息框消息内容; 4 + "\n工作站标识:" + sqlConnection1.WorkstationId 5 + "\n服务器地址:" + sqlConnection1.DataSource 6 + "\n服务器版本:" + sqlConnection1.ServerVersion 7 + "\n数据库名称:" + sqlConnection1.Database 8 + "\n\n(单击【确定】后将关闭SQL连接)"); 9 sqlConnection1.Close(); //关闭SQL连接; 10 MessageBox.Show //在消息框中显示; 11 ("连接状态:" + sqlConnection1.State.ToString());
演示效果如下:
(开始运行时)
(单击连接后)
(单击确定后)
再点击确定的话就会回到一开始的界面,此时SQL连接已经被关闭了。
诸位看官有什么疑惑或者发现我的操作在哪里出现纰漏的话,评论区欢迎你们哦~
以上。
![some_text](http://i.wotula.com/note.png?name=%E6%80%9D%E5%A5%8E&say=%E6%88%91%E8%A7%89%E5%BE%97%E8%BF%98%E5%8F%AF%E4%BB%A5)