数据库连接问题,同样的连接参数在VB中可以连,但在c#中无法连接???

haokaka 2004-10-10 04:00:18
我写了一个VB程序和一个C#程序,
都要连接同一个数据库,
先运行VB程序,配置好数据库连接以后,
在VB程序中调用C#程序,
C#程序就直接通过刚才配置好的参数连接数据库,
在大部分机子上,调用C#程序时都能正常运行,
但是有几台机子却提示数据库无法连接,
也就是说VB的程序可以连接,C#的程序无法连接,为什么呢?
...全文
169 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
henyzhang 2004-10-11
  • 打赏
  • 举报
回复
mdac2.7.exe装一下,以前我也遇到这样的问题,搞了好久,没有搞成,后来打了这个补丁后就解决了。
zjh135 2004-10-11
  • 打赏
  • 举报
回复
请注意在用DATA SOURCE的时候,要把SQL的计算机名和实例名写上如VBNET中:DATA SOURCE=RDWH\RDWHZJH c#中:data source=rdwh\\rdwhzjh
iamthomas 2004-10-11
  • 打赏
  • 举报
回复
下个mdac试试
haokaka 2004-10-11
  • 打赏
  • 举报
回复
对了,安装VB程序的时候会自动安装一个MDAC,不过好像是2.0的还是多少版本的,
难道是因为安装了这个的原因???
gaoxiaospring 2004-10-11
  • 打赏
  • 举报
回复
.NET请使用2.7或以后版本的MDAC.
gaoxiaospring 2004-10-11
  • 打赏
  • 举报
回复
是不是这两台客户机没有安装MDAC,如果没有的话到微软网站上下一下就可以了。
mqmmx 2004-10-11
  • 打赏
  • 举报
回复
是不vb的ado和c#的ado.net不兼容。在有错的机器上装个ado最新版试
haokaka 2004-10-11
  • 打赏
  • 举报
回复
连接字符串没问题,我看过了
ag1978 2004-10-11
  • 打赏
  • 举报
回复
调试中截取运行时的连接字符串看看。那样才可以判断哪里有问题。
haokaka 2004-10-11
  • 打赏
  • 举报
回复
连接语句都是通过向导建立连接后,复制下来的,
所以persist security info和packet size就按照默认的值保留下来了
BlueLevin 2004-10-11
  • 打赏
  • 举报
回复
"persist security info=True;//通常为false
packet size=4096;"//我头一次看见人定义包大小
haokaka 2004-10-11
  • 打赏
  • 举报
回复
在我的机子上运行肯定是正常的,
而且在别的机子上大部分都可以正常运行,
现在就发现有两台机子会提示连接错误,
是不是需要安装什么东西才能正常运行呢?
smallMage 2004-10-11
  • 打赏
  • 举报
回复
up
appleblossom 2004-10-11
  • 打赏
  • 举报
回复
先设置断点,把数据库完整的连接语句读出来看看有没有错误。
孟子E章 2004-10-11
  • 打赏
  • 举报
回复
打印ConnStr看是什么
haokaka 2004-10-11
  • 打赏
  • 举报
回复
VB程序是这样来连接的:
ConnStr = "Provider=SQLOLEDB.1;Persist Security Info=True;" _
& "User ID=" & UserID _
& ";Password=" & Pwd _
& ";Initial Catalog=" & Catalog _
& ";Data Source=" & DataSource
Set cn = New ADODB.Connection
cn.CursorLocation = adUseClient
cn.ConnectionString = ConnStr
cn.Open

C#程序是:
_ConnStr = "persist security info=True;packet size=4096;"
+ "user id={0};"
+ "password={1};"
+ "data source={2};"
+ "initial catalog={3}";
ConnStr = string.Format(_ConnStr, UserID, Pwd, DataSource, Catalog);
SqlConnection sqlConnection = new SqlConnection(ConnStr);
sqlConnection.Open();

这里的UserID, Pwd, DataSource, Catalog都是从同一个配置文件读取的,
现在的情况就是有几台机子运行程序时,VB程序可以连接数据库,
运行后再调用C#程序时,却提示无法连接,
明明是相同的配置啊,为什么呢?
swzlxm 2004-10-10
  • 打赏
  • 举报
回复
到底什么错误,把它贴出来,现在怎么看
wangxt 2004-10-10
  • 打赏
  • 举报
回复
不懂,帮你顶

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧