首页 新闻 会员 周边

C#连接数据库

0
[已解决问题] 解决于 2012-04-25 12:50
我用C#连接数据库时,如果我用无需身份验证时进行登录,我应该怎么连接SQL数据库。
程旭媛的主页 程旭媛 | 初学一级 | 园豆:79
提问于:2012-03-28 10:03
< >
分享
最佳答案
0

1、在本机建立一个windows账号

2、在sql server 数据库中,选中要设置的数据库=>安全性=>用户,添加该账号

3、修改连接字符串:Data Source=SQL实例;Initial Catalog=数据库;Integrated Security=True;User Instance=True

奖励园豆:5
智伟 | 菜鸟二级 |园豆:266 | 2012-04-01 23:49

这个我早就尝过啦,可还是失败。

程旭媛 | 园豆:79 (初学一级) | 2012-04-09 17:57
其他回答(3)
0

/// <summary>
/// 连接字符串
/// </summary>
public static string ConnectionString { get; set; }

/// <summary>
/// 根据Guid获取项目信息
/// </summary>
/// <param name="guid"></param>
/// <returns></returns>
public Project GetProject(Guid guid)
{
SqlConnection con = new SqlConnection(ConnectionString);
SqlCommand cmd = con.CreateCommand();

cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "dbo.GetProject";
cmd.Parameters.Add("@guid", SqlDbType.UniqueIdentifier).Value = guid;
cmd.Parameters.Add("@allProject", SqlDbType.Bit).Value = false;

con.Open();
SqlDataReader rdr = cmd.ExecuteReader();
Project project = new Project();

while (rdr.Read())
{
project.Guid = rdr.IsDBNull(0) ? Guid.Empty : rdr.GetGuid(0);
project.Name = rdr.IsDBNull(1) ? String.Empty : rdr.GetString(1);
project.Description = rdr.IsDBNull(2) ? String.Empty : rdr.GetString(2);
project.ProjectGuid = rdr.IsDBNull(3) ? Guid.Empty : rdr.GetGuid(3);
}

rdr.Close();
con.Close();
return project;
}

悟行 | 园豆:12559 (专家六级) | 2012-03-28 10:11

怎么没有连接字符串的语句啊。

支持(0) 反对(0) 程旭媛 | 园豆:79 (初学一级) | 2012-03-28 10:15

@xiaoss_candy: 

string cString = "Data Source=server;Initial Catalog=db;User ID=test;Password=test;";

支持(0) 反对(0) 悟行 | 园豆:12559 (专家六级) | 2012-03-28 10:17

@xiaoss_candy: 

、SQL Server的连接方式

以本地服务器(LocalHost),数据库(Northwind)为例,可以有以下一些连接方式
SqlConnection conn=new SqlConnection( "Server=LocalHost;Integrated Security=SSPI;Database=Northwind");
SqlConnection conn = new SqlConnection("Data Source=LocalHost;Integrated Security=SSPI;Initial Catalog=Northwind;");
SqlConnection conn = new SqlConnection(" Data Source=LocalHost;Initial Catalog=Northwind;Integrated Security=SSPI;Persist Security Info=False;Workstation Id=XURUI;Packet Size=4096; ");
SqlConnection myConn  = new SqlConnection("Persist Security Info=False;Integrated Security=SSPI;Database=northwind;Server=LocalHost");
SqlConnection conn = new SqlConnection(" Uid=sa;Pwd=***;Initial Catalog=Northwind;Data Source=LocalHost;Connect Timeout=900");

心得:

支持(0) 反对(0) 悟行 | 园豆:12559 (专家六级) | 2012-03-28 10:17

@荒野的呼唤: 这个知道,可问题是我是用windows方式登录的,无需身份验证,没有用户名和密码,那请问我应该怎么连接。

支持(0) 反对(0) 程旭媛 | 园豆:79 (初学一级) | 2012-03-28 10:20

@xiaoss_candy: 

"Data Source=LocalHost;Integrated Security=SSPI;Initial Catalog=Northwind;"

把Northwind改成你的数据库名称。

支持(0) 反对(0) 悟行 | 园豆:12559 (专家六级) | 2012-03-28 10:24

@荒野的呼唤: 

我试了好几遍,但还是不停的报错,每次都是我在打开数据库的连接时,

说:sqlexception was unhandled bu user code的错。

支持(0) 反对(0) 程旭媛 | 园豆:79 (初学一级) | 2012-03-28 10:36

@xiaoss_candy: 你的表名是不是用了数据库中的关键字,你把表名用[]括起来试试

支持(0) 反对(0) artwl | 园豆:16736 (专家六级) | 2012-03-28 22:33
2

我教你一个高端的写大部分数据库连接字符串的方法,一般人我不告诉他的:你新建一个文件a.txt,然后把它重命名成a.udl, 然后双击打开(接下来的东西你看到就懂了),完成后,再用记事本打开,里面的内容就是连接字符串了。

水牛刀刀 | 园豆:6350 (大侠五级) | 2012-03-28 10:46

哇,好玩儿,以前还不知道可以这么玩儿啊

支持(0) 反对(0) artwl | 园豆:16736 (专家六级) | 2012-03-28 11:02

@artwl: 说起来丢人,这个是若干年前,一个小MM教我的,人家还不是做开发的,只是做support的。

支持(0) 反对(0) 水牛刀刀 | 园豆:6350 (大侠五级) | 2012-03-28 11:14

请问双击打开干嘛,我打开什么都没有。

支持(0) 反对(0) 悟行 | 园豆:12559 (专家六级) | 2012-03-28 22:51

@荒野的呼唤: 我也在想这个问题。

支持(0) 反对(0) 程旭媛 | 园豆:79 (初学一级) | 2012-03-28 23:59

@荒野的呼唤: 你修改后缀名之后,文件图标没变么

支持(0) 反对(0) 水牛刀刀 | 园豆:6350 (大侠五级) | 2012-03-29 00:16

@xiaoss_candy: 你修改后缀名之后,文件图标没变么

支持(0) 反对(0) 水牛刀刀 | 园豆:6350 (大侠五级) | 2012-03-29 00:16
0

其实没你想的那么复杂,创建一个sqlconnection对象(假设是:con),这个你该会吧,然后打开这个对象(con.Open())

这样就连接成功了,哪来那么多废话

Halower | 园豆:1723 (小虾三级) | 2012-04-02 17:54

这个我肯定知道噻。你是没看清我题目的意思?我说的是在SQL中用windows方式登录(无需身份验证的那种),那么在C#中怎么连接数据库。

支持(0) 反对(0) 程旭媛 | 园豆:79 (初学一级) | 2012-04-09 17:56

@好闻?: VS-工具--》连接数据库选择window身份验证,高级里面有连接字符串,可以自己在程序中添加配置文件。

支持(0) 反对(0) Halower | 园豆:1723 (小虾三级) | 2012-04-09 18:33

@谢舸哥: 我就是不知道在程序中怎么添加这种配置文件啊,请教大虾给Demo。

支持(0) 反对(0) 程旭媛 | 园豆:79 (初学一级) | 2012-04-11 11:11

@好闻?: 发个你QQ号到我的消息里,我加你给你远程演示一下

支持(0) 反对(0) Halower | 园豆:1723 (小虾三级) | 2012-04-11 11:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册