C# 使用Windows身份验证连接Sql Server
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的更多相关文章
- sqlserver 2012 IDE中 Windows身份验证连接服务器报错 ,Login failed for user 'xxx\Administrator'. 原因: 找不到与提供的名称匹配的登录名。
问题描述: 本地装了两个实例,一个是SQLEXPRESS,可以正常操作.但是另一个开发常用的实例MSSQLSERVER却连Windows身份验证都报错,报的错误也是很奇葩,怎么会找不到Administ ...
- 数据库连接windows身份验证、sql验证
windows身份验证:"server=.;database=Northwind;Integrated Security=True;" sql验证:"server=.;d ...
- windows身份验证模式和SQL server身份验证模式 有什么不同
两个验证方式是有明显不同的. 主要集中在信任连接和非信任连接. windows 身份验证相对于混合模式更加安全,使用本连接模式时候,sql不判断sa密码,而仅根据用户的windows权限来进行身份验证 ...
- Windows身份验证和混合验证的差别
两个验证方式的不同主要集中在信任连接和非信任连接. windows 身份验证相对于混合模式更加安全,使用本连接模式时候,sql不推断sapassword.而仅依据用户的windows权 ...
- C#连接sql server windows 和 sqlserver 身份验证的两种连接字符串
//sql server 身份验证 连接字符串 private string ConnstrSqlServer = "server=服务器名称;uid=登录名称;pwd=登录密码;datab ...
- SQL Server 2008 sa用户可以登录,Windows身份验证无法登录
安装SQL Server 2008时一切正常,但是在启动时出现了问题.若使用SQL Server 身份验证,选择sa用户可以登录到系统,并正常使用.但是,若使用Windows身份验证,提示用户名或密码 ...
- C# 连接 sql server
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...
- [转载]SQL Server 2008 R2安装时选择的是windows身份验证,未选择混合身份验证的解决办法
安装过程中,SQL Server 数据库引擎设置为 Windows 身份验证模式或 SQL Server 和 Windows 身份验证模式.本文介绍如何在安装后更改安全模式. 如果在安装过程中选择&q ...
- 安装sql2008的时候选择的是Windows身份验证,现在我想用sql server身份验证,我应该到哪儿设置呢
本文档整理自网络,存粹用作笔记. 安装过程中,SQL Server 数据库引擎可以设置为 Windows 身份验证模式或 SQL Server 和 Windows 身份验证模式. 本文介绍如何在安装后 ...
- SQL Server 2008 Windows身份验证改为混合模式身份验证 及修改sa密码
由于需要,要把SQL2008单一的Windows身份验证改为混合模式身份验证.在此做一备忘. 步骤: 1.用Windows身份验证方式进入SQL2008,在[对象资源管理器]右键击[根目录]:
随机推荐
- 如何通过CAD图中的坐标来确定是哪个坐标系
国内常见的坐标系 坐标系分为以下两种: 地理坐标系(Geographic Coordinate System, GCS) 投影坐标系(Projected Coordinate System, PCS) ...
- 华为防火墙NAT技术
---我是陈小瓜,一个普通的路人,和大家一起交流学习,完善自己. 源NAT NAT-no-pat 安全策略写法: 源NAT,写安全策略,写转换前的私网IP,因为先匹配安全策略.再匹配NAT策略 NAT ...
- 前端vue基于原生check增强单选多选插件
前端vue基于原生check增强单选多选插件, 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12979 效果图如下: ...
- 逍遥自在学C语言 | 多级指针探秘
前言 多级指针在C语言中是一种特殊的指针类型,它可以指向其他指针的指针. 通过多级指针,我们可以间接地访问或修改存储在内存中的数据. 在本文中,我们将讨论多级指针的概念.使用方法.使用场景以及常见错误 ...
- PHP支付接口签名生成数据
<?php //作者主页 https://www.woailunwen.com $pay_memberid = '商户号'; $pay_orderid = '订单号'; $pay_amount ...
- 论文日记二:VGG
1. 导读 前面我们回顾了AlexNet,AlexNet的作者指出模型的深度很重要,而VGG最大的贡献就在于对网络模型深度的研究. VGG原论文:<Very Deep Convolutional ...
- CS144 LAB5~LAB6
CS144 lab5~6 最后两个lab了,虽然很多大佬都说剩下的两个lab比起TCP的实现,"简直太简单了",但是我认为做这两个之前需要补充一些额外的网络知识,不然直接上手去做的 ...
- 包管理工具npm和Yarn的区别,我们该如何选择?
好家伙,学习新工具 1.为什么我们需要包管理器? 关于npm我们已经知道了,这是我们项目的包管理器, 我们现在用的无比顺手的工具,都是在无数的竞争中杀出来的,他们淘汰了无数的产品 首先,倘若 ...
- 2023CCPC大学生程序设计竞赛-nhr
新生菜菜第一次参加这种大型比赛,还是有点紧张的,CCPC我们队就A了三题,铜牌.第一道,以为是签到,然后就交给clk了,我和crf看下一道过的题比较多的,然后感觉是一个滑动窗口,另一道题是纯数学公式. ...
- 论文翻译: FREEVC:朝着高质量、无文本、单次转换声音的目标迈进
原文:FREEVC: TOWARDS HIGH-QUALITY TEXT-FREE ONE-SHOT VOICE CONVERSION 原文地址:https://ieeexplore.ieee.org ...