标题:[求助]如何连接数据库?
只看楼主
guxinglengyue
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2006-7-17
 问题点数:0 回复次数:10 
[求助]如何连接数据库?

服务器IP:192.168.1.101,SQL实例名:Mserver,域abcd.com,管理员Administrator,密码:111
我计算机的名称是rrr,IP:192.168.1.111,域abcd.com的成员,开机时是用上面的Administrator登录到域的。
登录之后我就开始创建项目,在form1上放了一个dataGrid1,并在form1的Load事件中编写如下代码:
private void Form1_Load(object sender, System.EventArgs e)
{
string selectCmd = "select * from Department";
string conn = "workstation id=rrr;packet size=4096;integrated security=SSPI;data source=\"192.168.1.101\\Mserver\";persist security info=False;initial catalog=EEDB";
SqlConnection sc = new SqlConnection(conn);
SqlDataAdapter sda = new SqlDataAdapter(selectCmd,sc);
DataSet ds = new DataSet();
sda.Fill(ds,"Department");
dataGrid1.DataSource = ds;
dataGrid1.DataMember = "Department";
}
调试项目成功,在dataGrid1中显示了Department的所有记录。但是我想请教如下几个问题:
1、将这个项目保存到本地磁盘后,如果下次开机时改为本地账户user登录,再来运行这个项目会出错,是不是以后要在其他客户端运行这个程序,都得用上面的Administrator登录到域啊?如何克服这种情况呢?
2、这里的连接字符串里指定了workstation id=rrr;这也有问题的,要是在其他客户端运行这个程序,肯定也要出错,所以我想是不是有其他格式的连接字符串呢?如果没有,用什么方法获得本地计算机的名称呢?rrr用变量代替好了。望各位侠客不吝赐教!

搜索更多相关主题的帖子: 数据库 SQL 计算机 服务器 abcd 
2006-07-29 13:46
xupeng
Rank: 1
等 级:新手上路
帖 子:4049
专家分:0
注 册:2006-2-12
得分:0 
1.conn的关键部分可以让用户在TextBox里自己写,这样就灵活许多啦
2.我看workstation根本不用写

反清复明 http://xupeng.
2006-07-29 15:05
guxinglengyue
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2006-7-17
得分:0 
111

让使用者填写conn的关键部分太麻烦了吧,对于使用者来讲,越方便越好。
在连接字符串里面可以省略workstation id这个属性吗?我试试看吧。
如何才能使非Administrator域账户也能运行程序呢?这样的连接字符串好像不行,知道的人请赐教。

2006-07-29 15:16
guxinglengyue
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2006-7-17
得分:0 
222
现在conn改为"integrated security=SSPI;data source=\"192.168.1.101\\Mserver\";persist security info=False;initial catalog=EEDB"也能运行,这样就没有了workstation id的麻烦了,谢谢xupeng的建议
2006-07-29 15:22
guxinglengyue
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2006-7-17
得分:0 
333

在程序第一次运行的时候,可以设计一个界面让用户自己设定本单位的服务器名,SQL实例名及其用户和密码,如何根据这些设定的信息来写连接字符串呢?使得能让每个客户端的不同账户都能运行程序,而不是只有用Administrator登录到域才能运行。

2006-07-29 15:31
xupeng
Rank: 1
等 级:新手上路
帖 子:4049
专家分:0
注 册:2006-2-12
得分:0 
以下是引用guxinglengyue在2006-7-29 15:16:31的发言:

让使用者填写conn的关键部分太麻烦了吧,对于使用者来讲,越方便越好。

也不是太麻烦,比如用户只要填写192.168.0.1或者c3st08.
我的意思是格式由你写好,但是具体的值由用户来写,比如user id = textbox1.Text


反清复明 http://xupeng.
2006-07-29 15:34
guxinglengyue
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2006-7-17
得分:0 
444
说得对,不过上面的连接字符串格式不行啊,我好像看到过有指定user id、user pwd等属性的连接字符串,具体怎么写的可以告诉我吗?
2006-07-29 15:40
rgmlkthh
Rank: 1
等 级:新手上路
帖 子:78
专家分:0
注 册:2005-9-11
得分:0 

如果是本机的数据库的话直接用语句

SqlConnection con=new SqlConnection("server=.;database=数据库名;uid=SQL登录名;pwd=密码;");

就可以了


2006-08-01 14:56
xupeng
Rank: 1
等 级:新手上路
帖 子:4049
专家分:0
注 册:2006-2-12
得分:0 
conn = "user id="+this.textbox1.text+";password="+this.textbox2.text

[此贴子已经被作者于2006-8-2 8:54:00编辑过]



反清复明 http://xupeng.
2006-08-02 08:52
xxxxx52
Rank: 4
等 级:贵宾
威 望:13
帖 子:689
专家分:0
注 册:2006-4-30
得分:0 
以下是引用rgmlkthh在2006-8-1 14:56:51的发言:

如果是本机的数据库的话直接用语句

SqlConnection con=new SqlConnection("server=.;database=数据库名;uid=SQL登录名;pwd=密码;");

就可以了

正解


好的资料下载网站http:///in.asp?id=xuelion2006 嘿嘿帮点一下拉~
2006-08-02 09:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-80918-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.086913 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved