在 conn.Open(); 处会报错,“SQL Server 不存在或访问被拒绝。”
我用SQL2005直接连接远程数据库就没有问题
-----------------------------------------------------------------
下面是我的程序,请大家帮忙看看是什么原因
环境:winCE + VS2008 + SQL2005
步骤:
1.下载System.Data.SqlClient.dll 和 dbnetlib.dll
2.引用SqlClient
using System.Data.SqlClient;
3.在程序的执行目录下拷贝一个dbnetlib.dll文件,在dbnetlib.dll文件上右键-属性-高级 -复制到输出目录:如果较新则复制
4. Code
string Sqlstr = "Data Source=192.168.1.106;Database=MSDB;User ID=sa;Password=sgsg"; string sql = "select * from DCS_MOBILES"; DataTable dt = new DataTable(); using (SqlConnection conn = new SqlConnection(Sqlstr)) { try { conn.Open(); } catch (SqlException sqle)//Exception { MessageBox.Show("出现错误:" + sqle.Message.ToString()); //throw; } using (SqlDataAdapter cmd = new SqlDataAdapter(sql, conn)) { cmd.Fill(dt); } }
这个程序之前是能够正常运行的,后来冲做了下系统后就报这个错误了
数据库服务器的防火墙是否允许了1433端口的访问?
我把防火墙都关了... 我现在在本地调试呢
你原来能用??他只能连接本地机的Sql server,不能连接网络中的Sql server。我以前做过这个东西,咨询设备供应商也解决不了。你解决了,也顺便告诉我。
我后来就在本地机又装了一个数据库,在同步数据的时候先复制到本地,再传输到wince中来。
我做系统前这个东西是可以用的,我在设备上用的是SQLite存储数据,之后在后台程序里读取SQLite中的数据,同时再用上面的方法连接到远程数据库SQL Server,这样间接实现的数据同步,但是做系统后用上面的方法连接远程数据库时,在打开数据库的时候[open()]就报错了...
谁还知道其他的方法可以将设备的数据读取到PC机的方法么,请告诉我下。
@bdf216:
我不理解你做系统前能用是个什么情形。
我用Sql Server Compact做wince上的数据库,通过SqlCeConnection连接这个移动数据库,然后再用SqlConnection连接网络中的数据库,就是连接不上,但只能链接这个wince设备接入的这台机器的Sql server,但wince上外网可以啊,很迷惑。你可以试试连接本地机的Sql server看看。
我用的这个设备是新大陆的一个扫描枪。
我将程序和环境在同事的电脑上部署了下,在他电脑上没有问题,应该是我电脑的环境有问题。