C# 使用Windows身份验证连接Sql Server

使用Windows身份验证连接Sql Server 的字符串为:

server=.;database=test_user;Trusted_Connection=SSPI;

对比使用 sql server身份验证的字符串为:

server=.;uid=xxx;pwd=xxxxx;database=test_user;

核心在于Trusted_Connection=SSPI,表示无需使用密码就能够访问Sql Server内容,但这种方式非常不安全,但在写一些demo时不妨采用。

数据库

use test_user;
create table [TEST](
[ID] int not null check([ID]>0) primary key,
[USERNAME] varchar(10) not null,
[PWD] varchar(100) not null
); insert into [TEST] values(1,'张飞','werqewq');
insert into [TEST] values(2,'刘备','asdfasd');
insert into [TEST] values(3,'关羽','23231cds23d3');
insert into [TEST] values(4,'曹操','vvvvvv');
insert into [TEST] values(5,'孙权','bbbbb');
insert into [TEST] values(6,'汉献帝','333333');
insert into [TEST] values(7,'司马懿','22222');
insert into [TEST] values(8,'诸葛亮','1111111'); select * from [TEST];

Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;//一系列的数据库操作类用到 namespace testuser
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
//前加@的字符串代表字符串所有的需要转义的字符自动转义,而无需使用转义符\
SqlConnection sqlConnection = new SqlConnection(@"server=.;database=test_user;Trusted_Connection=SSPI");
sqlConnection.Open();
//生成表头
listView1.Columns.Add("ID", listView1.Width / 3 - 1, HorizontalAlignment.Left);
listView1.Columns.Add("姓名", listView1.Width / 3 - 1, HorizontalAlignment.Left);
listView1.Columns.Add("密码", listView1.Width / 3 - 1, HorizontalAlignment.Left);
try
{
string sql = @" select * from [TEST];";
SqlDataReader sqlDataReader = new SqlCommand(sql, sqlConnection).ExecuteReader(); listView1.BeginUpdate(); //数据更新挂起UI,直到EndUpdate绘制控件
for(int i=1;sqlDataReader.Read(); i++) //遍历查询结果
{
ListViewItem listViewItem = new ListViewItem();
//listView的每一行的第一项要特殊处理
listViewItem.Text = sqlDataReader.GetInt32(0).ToString();
listViewItem.SubItems.Add(sqlDataReader.GetString(1)); //其余子项
listViewItem.SubItems.Add(sqlDataReader.GetString(2));
listView1.Items.Add(listViewItem); //将这行添加到listView中
}
listView1.EndUpdate(); //结束数据处理,UI界面一次性绘制
}
catch
{
MessageBox.Show("数据库出错!", this.Text);
}
sqlConnection.Close();
} //根据ListView 的总大小平均分配各个列宽
private void Form1_Resize(object sender, EventArgs e)
{
for(int i= 0;i<listView1.Columns.Count;i++)
{
ColumnHeader columnHeader = listView1.Columns[i];
columnHeader.Width = listView1.Width / listView1.Columns.Count - 2;
}
}
}
}

Form1.cs[设计]

Form1 事件:Resize Form1_Resize

​ Load Form1_Load

ListView1 属性:Anchor Top,Buttom,Left,Right

​ FullRowSelect True

​ GridLines True

​ View Details

效果

C# 使用Windows身份验证连接Sql Server的更多相关文章

  1. sqlserver 2012 IDE中 Windows身份验证连接服务器报错 ,Login failed for user 'xxx\Administrator'. 原因: 找不到与提供的名称匹配的登录名。

    问题描述: 本地装了两个实例,一个是SQLEXPRESS,可以正常操作.但是另一个开发常用的实例MSSQLSERVER却连Windows身份验证都报错,报的错误也是很奇葩,怎么会找不到Administ ...

  2. 数据库连接windows身份验证、sql验证

    windows身份验证:"server=.;database=Northwind;Integrated Security=True;" sql验证:"server=.;d ...

  3. windows身份验证模式和SQL server身份验证模式 有什么不同

    两个验证方式是有明显不同的. 主要集中在信任连接和非信任连接. windows 身份验证相对于混合模式更加安全,使用本连接模式时候,sql不判断sa密码,而仅根据用户的windows权限来进行身份验证 ...

  4. Windows身份验证和混合验证的差别

    两个验证方式的不同主要集中在信任连接和非信任连接.         windows 身份验证相对于混合模式更加安全,使用本连接模式时候,sql不推断sapassword.而仅依据用户的windows权 ...

  5. C#连接sql server windows 和 sqlserver 身份验证的两种连接字符串

    //sql server 身份验证 连接字符串 private string ConnstrSqlServer = "server=服务器名称;uid=登录名称;pwd=登录密码;datab ...

  6. SQL Server 2008 sa用户可以登录,Windows身份验证无法登录

    安装SQL Server 2008时一切正常,但是在启动时出现了问题.若使用SQL Server 身份验证,选择sa用户可以登录到系统,并正常使用.但是,若使用Windows身份验证,提示用户名或密码 ...

  7. C# 连接 sql server

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  8. [转载]SQL Server 2008 R2安装时选择的是windows身份验证,未选择混合身份验证的解决办法

    安装过程中,SQL Server 数据库引擎设置为 Windows 身份验证模式或 SQL Server 和 Windows 身份验证模式.本文介绍如何在安装后更改安全模式. 如果在安装过程中选择&q ...

  9. 安装sql2008的时候选择的是Windows身份验证,现在我想用sql server身份验证,我应该到哪儿设置呢

    本文档整理自网络,存粹用作笔记. 安装过程中,SQL Server 数据库引擎可以设置为 Windows 身份验证模式或 SQL Server 和 Windows 身份验证模式. 本文介绍如何在安装后 ...

  10. SQL Server 2008 Windows身份验证改为混合模式身份验证 及修改sa密码

    由于需要,要把SQL2008单一的Windows身份验证改为混合模式身份验证.在此做一备忘. 步骤: 1.用Windows身份验证方式进入SQL2008,在[对象资源管理器]右键击[根目录]:

随机推荐

  1. odoo开发教程九:Odoo10 API

    一:纪录集API model中的数据是以集合的形式使用的,因此可以使用集合运算来操作. 集合运算符 record in set返回record是否在set中,record须为单条记录,record n ...

  2. 体验了一把 MiniGPT-4,一言难尽

    最近看到一个好玩的开源项目:MiniGPT-4. 看名字像 GPT-4 的小老弟,其实没啥关系. 简单说,它可以识别图像,基于图像你可以和它对话,它能生成图片描述.网站.诗歌. 先看看官方给出的例子截 ...

  3. 基于VAE的风险分析:基于历史数据的风险分析、基于实时数据的风险分析

    目录 引言 随着人工智能和机器学习的发展,风险分析已经成为许多行业和组织中不可或缺的一部分.传统的基于经验和规则的风险分析方法已经难以满足现代风险分析的需求,因此基于VAE的风险分析方法逐渐成为了主流 ...

  4. Linux下ElasticSearch及IK分词插件安装

    ElasticSearch及IK分词插件相关安装 一. 简介 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口. ...

  5. Python copy & deeocopy 探究

    简单来说,copy 复制创建新的容器,而引用容器内元素的地址不变.而 deepcopy 也对容器内的容器元素进行复制. 但是这种复制具体是什么体现呢?是否只是对第一层容器元素进行了复制?写了一段代码验 ...

  6. 使用Githud 实现分发IPA包遇到的坑

    最近要用到测试包分发,首先想到了,蒲公英,但是把包扔上去,扫描下载的时候发现,现在需要用户登录才能下载,弃了. 又跑到fir ,发现还得实名才能用,还得上传各种证件照,而且好像每天只有10个下载量,. ...

  7. Jedis 参数异常引发服务雪崩案例分析

    作者:vivo 互联网服务器团队 - Wang Zhi Redis 作为互联网业务首选的远程缓存工具而被大面积使用,作为访问客户端的 Jedis 同样被大面积使用.本文主要分析 Redis3.x 版本 ...

  8. 离线自动化部署CDH

    离线CDH集群自动化部署工具 离线CDH集群安装与部署的自动化脚本工具,简单支持「离线一键装机」. 脚本将对系统配置做出一定修改,使用前请务必确认当前服务器无其他人员.任务使用,以免造成不必要的麻烦, ...

  9. zabbix 添加 zabbix_agentd 服务

    创建服务文件 # /usr/lib/systemd/system/zabbix-agent.service [Unit] Description=Zabbix Agent After=syslog.t ...

  10. study the docker network of macvlan

    Introduce: 在 Macvlan 出现之前,我们只能为一块以太网卡添加多个 IP 地址,却不能添加多个 MAC 地址,因为 MAC 地址正是通过其全球唯一性来标识一块以太网卡的,即便你使用了创 ...