移动设备6.5远程sql server连接

时间:2015-06-03 09:38:42

标签: windows-mobile

我是开发智能设备应用程序的新手,在尝试连接到远程SQL Server 2008 Express实例时遇到了一个奇怪的问题。

数据库可以访问,因为我可以通过Management studio从我的开发PC连接到它。

当我尝试从我的项目打开它的连接时,我收到一个本机错误。我认为它与我的连接字符串有某种关系。如您所见,我有一个名为SQLEXPRESS的SQL Server实例。

如果我从连接字符串中删除它并且只留下“server = 192.168.10.2,1433”,那么我得到一个正常的SQL异常而不是本机异常。但是,如果我使用正确的值(server=192.168.10.2,1433\\SQLEXPRESS),则会出现本机错误。 我包含了一个抛出上述异常的基本代码。

有问题的行是myConnection.Open();

using System.Data.SqlClient;

namespace SmartDeviceProject3
{
    public partial class Form1 : Form
    {
        SqlConnection myConnection;
        String constr = "server=192.168.10.2,1433\\SQLEXPRESS; Database=HKTLMSDB; User Id=user; Password=password; Connection Timeout=20";

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {            
        GetData();
    }

    private void GetData()
    {
        try
        {
            myConnection = new SqlConnection(constr);
            myConnection.Open();
            //some code here that queries data from the server and fills it into a datagrid
            myConnection.Close();             
        }
        catch (Exception e)
        {
            MessageBox.Show(e.ToString());
        }
    }
}
}

例外情况如下:

  

ExceptionCode:0xc0000005

     

异常地址:0x03fa25e4

     

阅读:0x00000000

     

错误模块:coredll.dll

     

偏移量:0x000585e4

在DbNetLib.ConnectionOpenW(IntPtr pConnectionObject,String networkname,Int32& errno)

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

对不起,我发现了这个错误的原因。服务器实例应在连接字符串中用斜杠而不是反斜杠分隔。 正确的方法是:"server=202.31.95.86,1433/SQLEXPRESS;"

我在所有桌面应用程序中都使用反斜杠,但没有问题!紧凑的框架似乎更敏感。