为什么C#无法访问局域网数据库

我电脑作为服务器。用c# winform生成的一个安装程序,在同事电脑上安装后,无法连接到我的电脑数据库。我把数据库都打包进去了,也是不行,何解?

你在cmd上运行 telnet ip地址 端口号
试试看,可否登陆

我写了个winform程序,局域网里有3台电脑,我的电脑不分服务器端和客户端,数据库放在1号电脑,我想问2号和3号电脑可以访问到1号电脑上的数据库吗?
你数据库在A上,那么a就是你的数据服务器,你程序里配置访问数据库的地址是a机器的地址就能访问数据库了

winform开发应用程序,访问远程数据库,用什么方式好呢?
使用odbc连接数据库,还是用socket,还是其他?
一般的企业应用,c/s都是怎么设计的?
客户端winform,服务器webservice+ejb,数据传输用xml或json这种设计方案合适吗?

看线路情况,如果局域网内可以用odbc连接数据库,如果是互联网上看数据量大小,如果数据量不大可以使用webservice,如果数据量大,还是使用服务程序Remoting方式较好。webservice可以使用ejb方式或.net方式。不过从便于学习管理角度,推荐使用同构
ip地址+数据库名 局域网 ,可以

为什么C#无法访问局域网数据库
为什么C#无法连接局域网中的电脑中的数据库,家庭组啊,服务器连接都可以连接上那台电脑,本机和那台电脑开启了所有的SQL服务,并设置连接为允许远程连接,可以相互ping通,但就是不知道为什么连接不上,其他局域网内的软件都可以使用,就是C#编程连接不上,并通过cmd命令,ipconfig获取的IP地址

代码如下: static String str = "Data Source=192.168.1.110;Initial Catalog=Student;User Id=sa;Pwd=weiwangze"; private SqlConnection con; public bool CheckLogin(string name,string pwd) { con = new SqlConnection(str); con.Open(); StringBuilder sb = new StringBuilder(); sb.Append(" select count(*) from StudentInfo where StudentName='"+name+"' and StudentPwd='"+pwd+"' "); SqlCommand cmd = new SqlCommand(sb.ToString(),con); int i = (int)cmd.ExecuteScalar(); con.Close(); if(i>0){ return true; } return false; }
本机上的C#连接数据库可以连接,用的192.168.1.102或者127.0.0.1都可以,都是直接输入的,VS试图中连接的上局域网中的电脑,但连接不上数据库,我两台都安装的是SQL Server2012,企业/完整版,VS也是完整企业版的,都是2012最新版的。


192.168.1.110上的防火墙关了没,包括系统自带的,或者你在本机cmd下用telnet 192.168.1.110 1433看看能否连上端口。

这里面涉及几个问题,你先用sql server management studio,按你设定的上面这组信息,用ip和指定的用户名去连接一下这个数据库看看(一般情况下,如果你在那台机器上安装的是express版本的数据库,数据源应该是192.168.1.110\\sqlexpress)

想访问本地局域网地址192.168.1.16数据库,c#访问的数据库的字符串怎么写?下面的访问不了
"Data Source=192.168.1.16; Network Library=DBMSSOCN;Initial Catalog=studnet;user Id=sa; password=123321;Integrated Security=SSPI;" +
"Integrated Security=true;";
"Data Source=192.168.1.16;Initial Catalog=SmartCemsDBCenter;User Id=sa; Password=123321;Integrated Security=SSPI;";

<add key="dbConnection" value="server=192.168.1.16;database=SmartCemsDBCenter;UID=sa;PWD=123321;max pool size=20000;Pooling=true;"/>

C#中如何登录局域网SQL Server数据库
一.比如说我的SQL服务器装在里面的办公室,而我想在外面电脑(C#)客户端程序能登录到(并操作)里面办公室局域网的SQL数据库, 二.顺便问下,如果我用C#做个程序第一个界面是个数据库连接的界面(服务器/ip名,数据库名,用户名,密码),如果这次连接上了,下次再登录时如何保存上次输入的信息呢?代码应该怎么写?详细点谢谢。(并付上注释本人比较菜)!

OracleConnection conn = new OracleConnection("Data Source=服务器名;User Id=用户名;Password=密码;DataBase=数据库名;Integrated Security=no;");
//这是连接数据库操作
如果你想保存这个信息,你可以写个方法:
private void StoreInfo()//意图是将信息保存到DataTable中,以xml形式写
{
DataTable dt=new DataTable();
if (System.IO.File.Exists("保存路径"))//如果以前存储过
{
dt.ReadXml("保存路径");
}
else //新建一个xml
{
dt.Columns.Add("DATASOURCE", typeof(String));
dt.Columns.Add("DATABAE", typeof(String));
dt.Columns.Add("USERID", typeof(String));
dt.Columns.Add("PASSWORD", typeof(String));
}
DataRow dr = dt.NewRow();
dr["DATASOURCE"] = 服务器名/ip;
dr["DATABAE"] = 数据库名;
dr["USERID"] = 用户名;
dr["PASSWORD"] = 密码;
dt.Rows.Add(dr);
dt.TableName = "数据库连接信息";
dt.WriteXml(保存路径,XmlWroteMode.WriteSchema);
}
没调试,大概意思就是这样:自己写一个DataTable,然后增加DataRow,把你想保存的信息写到新的DataRow里,然后加入到DataTable里,最后调用
DataTable.WriteXml(...)方法,保存到本地.

猜你喜欢

转载自blog.csdn.net/zgscwxd/article/details/131554602