问题描述
大家好,我是菜鸟,我来这里寻求一个帮助。我有个毕业设计,我希望我的设计能够成为一个符合实际的东东。我想用VB.NET做一个实用的连接ACCESS或者SQL数据库的登陆界面,并且能够以数据库中的“用户”表(包含用户名、密码、用户等级)做为登陆的验证。在本网段(10.2.32.250)和其他网段(如10.2.74.250等)均可以连接。服务器(WINDOWS2000SERVER系统,地址:10.2.32.21,用户:administrator,密码:111111),自己的机器(WINDOWS2000系统,地址:10.2.32.23,用户:administrator,无密码)我需要一个完整的设计思路。我的思路如下:1.首先在服务器中建立一个数据库(ACESS或SQL),建立“用户”表,表中包含(用户名、密码、用户等级)。2.在自己的机器,使用MicrosoftVisualStudio.NET2003创建了一个登陆窗口。两台机器可以互相PING通。3.登陆窗口中连接代码如下:对ACCESSzdhdb.mdb数据库,密码为admin,文件存放在10.2.32.21的D$的zdhbg文件夹中,zdhbg文件夹已经共享。cnData.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;JetOLEDB:databasepassword=admin;;DataSource=\10.2.32.21zdhbgzdhdb.mdb;PersistSecurityInfo=False"其他代码省略现在出现一个问题,当我需要登陆验证(登陆文件denglu.exe)时候,提示:MicrosoftJet数据库引擎打不开文件“\10.2.32.21zdhbgzdhdb.mdb”。它已经被别的用户以独占方式打开,或者没有查看数据的权限。可是,当我使用开始运行菜单的\10.2.32.21,输入用户administrator密码111111并登陆到服务器后,然后再尝试登陆验证(登陆文件denglu.exe)时候,现在就能正常登陆了,这是什么原因呢,是否需要配置ODBC之类的设置。对SQLzdhdb为SQL数据库,数据库采用NT混合验证。cnData.ConnectionString="Provider=SQLOLEDB.1;integratedsecurity=SSPI;server=10.2.32.21;database=zdhdb;uid=administrator;pwd=111111;persistsecurityinfo=False;"其他代码省略现在出现一个问题,当我需要登陆验证(登陆文件denglu.exe)时候,提示:[SQLServer]用户‘null’登陆失败。原因未与信任SQLServer连接相关联。是否需要配置ODBC。连SQL我碰的问题更多,这是其中一个,如果谁有兴趣,能否指出错误,如果能提供一个实例则更好。我的描述可能非常不准确而且模糊,让大侠们可能看不懂,我的邮箱sjj-wh214317@163.comqq是460342209,如果能给予帮助,我感激不尽。
解决方案
解决方案二:
1:链接MDB的时候,可以程序里面用shEll先执行:netuse\computernamepassword/user:username2:-----MSSQL数据库连接字符串模板----------a:身份验证模式为:"sqlserver和windows"Provider=SQLOLEDB.1;PersistSecurityInfo=True;UserID=用户名;Password=密码;InitialCatalog=数据库名;DataSource=SQL服务器名b:身份验证模式为:"仅windows"Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=数据库名;DataSource=SQL服务器名
解决方案三:
关于数据库连接,参见http://www.connectionstrings.com
解决方案四:
孟老大都来了!
解决方案五:
用个.txt,改后缀为udl看看是啥!
解决方案六:
我看了cnData.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=\10.2.32.21zdhbgzdhdb.mdb;JetOLEDB:SystemDatabase=system.mdw;UserID=administrator;Password=admin;"还是不行,另外“SystemDatabase=system.mdw”是啥意思
解决方案七:
我的10.2.32.21服务器带密码的,Database没有密码,我写成上面的还有有问题,两台机器是网卡相连接的
解决方案八:
引用5楼wewewh的回复:
我看了cnData.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=\10.2.32.21zdhbgzdhdb.mdb;JetOLEDB:SystemDatabase=system.mdw;UserID=administrator;Password=admin;"还是不行,另外“SystemDatabase=system.mdw”是啥意思
那是工作组信息安全模式,不是普通安全模式。ACCESS没有将将工作组信息存储原始的数据库中,而是存储在另一个称为系统数据库的数据库中,扩展名为(.mdw),通常使用默认的系统数据库,即System.mdw,但你也可以指定独立的系统数据库,关键是要知道您的数据库究竟使用的是哪个系统数据库存储工作组信息。如果你使用ODBC连接到数据库,就需要在配置ODBC数据源时指明系统数据库名称。
解决方案九:
我也用过:Shell"netuse\计算机名123456/user:administrator",vbHide'下面的是用Windows验证登陆的字符串。IntegratedSecurity=True(或SSPI);'PrivateSharedConnectStringAsString="IntegratedSecurity=True;DataSource=SQL服务器名;InitialCatalog=ZDPRC;"'下面是用SQL,sa标准用户来登陆的字符串,密码为空。DataSource可以用Sever来代替.'PrivateSharedConnectStringAsString="DataSource=SQL服务器名;InitialCatalog=ZDPRC;UserID=sa;Password=;"'下面也可以用来连接本机的SQL,可用.来代替本机。'PrivateSharedConnectStringAsString="DataSource=.;InitialCatalog=ZDPRC;UserID=sa;Password=;"'下面是连接mailserver的,远程服务器的名称:MAILSERVER,如果远程服务器的端口不是1433,就要改相应的端口号。'PrivateSharedConnectStringAsString="DataSource=MAILSERVER;InitialCatalog=Northwind;UserID=sa;Password=123456;"'下面是连接mailserver的,远程服务器的IP地址:192.168.0.2,如果远程服务器的端口不是1433,就要改相应的端口号。'PrivateSharedConnectStringAsString="DataSource=192.168.0.2;InitialCatalog=Northwind;UserID=sa;Password=123456;"
解决方案十:
路过学习了
解决方案十一:
1.它已经被别的用户以独占方式打开,或者没有查看数据的权限-----------------------------------------------------是否在服务器的数据库打开了2.是否需要配置ODBC------------------不需要配置3.你的语句连接语句应该是正确的,看是否有防火墙或者访问权限受限
解决方案十二:
身份验证问题,就是权限问题看样子楼主学得还不错啊用sqlserver吧
解决方案十三:
DataSource=wwserver;InitialCatalog=MAS;uid=masau;pwd=20070101以上代码连sqlserver,只要用数据库用户名密码参数没错,就连得上
解决方案十四:
SqlServer连接DataSource=wwserver;InitialCatalog=MAS;uid=masau;pwd=20070101
解决方案十五:
但是我现在的问题很多,我的2台电脑之间是网卡相连的,现在两台电脑之间可以互相PING通,也能互相访问硬盘,但是从网上邻居中就互相看不到,工作组都是XUEXI。服务器(WINDOWS2000SERVER系统,地址:10.2.32.21,用户:administrator,密码:111111)的SQL(服务器名:FWQ)已经开启,但是我在客户机(WINDOWS2000系统,地址:10.2.32.23,用户:administrator,无密码)上打开MicrosoftVisualStudio.NET2003后,打开“服务资源管理器”里面却找不到运行的服务器,使用添加服务器,写入10.2.32.21,也提示找不到,这是什么原因啊,是不是因为是网卡相连接的原因,我是不是应该加个交换机,让2个网卡连到交换机上去。对连接ACCESS数据库,我还有很多疑问。使用linjimu老兄提供的Shell"netuse\10.2.32.21111111/user:administrator",vbHide这个办法,我的确是连到了数据库zdhdb.mdb上,但是问题又来了,做的登陆界面成功登陆后,使用使用开始运行菜单的\10.2.32.21,发现直接可以打开服务器10.2.32.21的共享文件夹了,这样会造成数据库的不安全吧,我记的有人说过:“把数据库放在Web服务器上,使ADO或RDO通过RDS(RemoteDataService)及IIS来实现”使用这种方法应该不会让别人轻易访问到服务器吧,只有登陆程序才可以访问到吧。我也尝试了,可是却没有成功。提示转换方式不对。我给出具体的连接,大侠再给些指导吧。把数据库放在Web服务器上,使ADO或RDO通过RDS(RemoteDataService)及IIS来实现: 如果服务器设置了ODBCDSN的话,连接方法如下: "Provider=MSRemote;RemoteServer=http://10.2.32.21;RemoteProvider=MSDASQL;DSN=zdhdb; Uid=administrator;Pwd=111111"这种我试过,也不行,我想是我服务器ODBCDSN没有设置对,或者是其他设置问题。有高手给我正确的完整的设置方法吗,从服务器上到客户机上。 如果设置的是OLEDBProvider的话,连接方法如下: "Provider=MSRemote;RemoteServer=http://10.2.32.21;RemoteProvider=Microsoft.Jet.OLEDB.4.0; DataSource=zdhbgzdhdb.mdbm,"+"administrator,"+"111111"(数据库用户名为:admin;密码为空)这种我试过,也不行,我想是我设置问题。有高手给我正确的完整的设置方法吗,从服务器上到客户机上。我的描述可能非常不准确而且模糊,让大侠们可能看不懂,我的邮箱sjj-wh214317@163.comqq是460342209,如果能给予帮助,我感激不尽。
解决方案:
有密码的MDB连接时会出现"它已经被别的用户以独占方式打开,或者没有查看数据的权限"的提示试试这段取得MDB连接字符串的代码PublicSharedFunctionMDBConnectionStr()AsStringDimconnsbAsSystem.Text.StringBuilder=NewSystem.Text.StringBuilder()connsb.Append("Provider=Microsoft.Jet.OLEDB.4.0;")connsb.Append("DataSource=\10.2.32.21zdhbgzdhdb.mdb;")''EngineTypeJetx.xFormatMDBFiles''0Unknown''1JET1.0''2JET1.1''3JET2.xAccess2.0''4JET3.xAccess95/97''5JET4.xAccess2000/2002connsb.Append("JetOLEDB:EngineType=5;")''DatabaseLockingMode''Page-levelLocking0''Row-levelLocking1connsb.Append("JetOLEDB:DatabaseLockingMode=0;")''自己的密码,用户名Admin为默认的connsb.Append("JetOLEDB:DatabasePassword=111111;")connsb.Append("ExtendedProperties=;")connsb.Append("JetOLEDB:CompactWithoutReplicaRepair=False;")connsb.Append("JetOLEDB:CreateSystemDatabase=False;")connsb.Append("JetOLEDB:Don'tCopyLocaleonCompact=False;")connsb.Append("JetOLEDB:EncryptDatabase=False;")connsb.Append("JetOLEDB:GlobalBulkTransactions=1;")connsb.Append("JetOLEDB:GlobalPartialBulkOps=2;")connsb.Append("JetOLEDB:NewDatabasePassword=;")connsb.Append("JetOLEDB:RegistryPath=;")connsb.Append("JetOLEDB:SFP=False;")'connsb.Append("JetOLEDB:Systemdatabase=""SYSTEM.MDW"";")'connsb.Append("UserID=Admin;")'connsb.Append("Password=12345678;")connsb.Append("JetOLEDB:Systemdatabase=;")connsb.Append("UserID=;")connsb.Append("Password=;")connsb.Append("Mode=ShareDenyNone;")connsb.Append("PersistSecurityInfo=False;")Returnconnsb.ToString()EndFunctionSQLServer连接一般没问题的Provider=SQLOLEDB;DataSource=10.2.32.21;InitialCatalog=zdhdb;PersistSecurityInfo=True;UserID=administrator;Password=111111
解决方案:
“IIS+ASP+ACCESS”组合方式建立网站是什么意思,具体怎么样做呢?如果我做不是网站模式,而是用“IIS+ASP+ACCESS”这个模式做一个学生管理系统,是WINDOWS应用程序,服务器上存放ACCESS数据库,其他客户机使用访问并修改数据库表的WINDOWS应用程序,能行吗。如果能行,那应该是怎么样的操作呢?
解决方案:
youwantawindowsapplicationorwebapplication?
解决方案:
走过路过不要错过,呵呵
解决方案:
帮你顶吧~
解决方案:
youwantawindowsapplicationorwebapplication?是什么意思呢@_@?,是不windows应用程序web应用程序啊,别笑话我再问个问题,如果我已经做好了登陆程序,也能登陆到远程服务器上,我怎么样把远程服务器的时间和日期读到本地已经打开的.EXE上呢,也就是说,我要始终以服务器的日期和时间为准,本地的不管.我的描述可能非常不准确而且模糊,让大侠们可能看不懂,我的邮箱sjj-wh214317@163.comqq是460342209,如果能给予帮助,我感激不尽。
解决方案:
再问个傻问题,如果我用的数据库是ACCESS,那么,如果我用VB.NET做一个学生查询成绩和修改的应用程序,那么,ACCESS最大可以允许多少个用户同时登陆并且同时对某一个表进行删除或者添加,同时进行,但可以是不同的机器,请了解的大侠们指教一下.