Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何解决;确保SQL Server Browser正在运行",当它是_C#_Sql Server_Xamarin.forms_Visual Studio 2017_Sql Server 2017 Express - Fatal编程技术网

C# 如何解决;确保SQL Server Browser正在运行",当它是

C# 如何解决;确保SQL Server Browser正在运行",当它是,c#,sql-server,xamarin.forms,visual-studio-2017,sql-server-2017-express,C#,Sql Server,Xamarin.forms,Visual Studio 2017,Sql Server 2017 Express,我正在Visual Studio 2017中使用Xamarin表单创建一个Android应用程序。因为这包括存储数据,所以我使用SQL Server 2017来实现这一点。当我运行代码并调试行“conn.Open()”时,我收到一个错误,指出我应该确保SQL Server Browser正在运行。但是,当我检查SQL Configuration Manager时,它正在运行 有些事情我试过了 -确保SQL Server中的连接字符串与我的代码中的连接字符串匹配 -我已尝试更改SQL Server

我正在Visual Studio 2017中使用Xamarin表单创建一个Android应用程序。因为这包括存储数据,所以我使用SQL Server 2017来实现这一点。当我运行代码并调试行“conn.Open()”时,我收到一个错误,指出我应该确保SQL Server Browser正在运行。但是,当我检查SQL Configuration Manager时,它正在运行

有些事情我试过了 -确保SQL Server中的连接字符串与我的代码中的连接字符串匹配 -我已尝试更改SQL Server浏览器的登录内容(无论是本地系统、本地服务等) -我尝试了几种不同的方法在代码中实现insert语句

    public class ConnectionManager
    {
        public static SqlConnection NewCon;
        public static string ConStr = @"Data Source=DESKTOP-V83O00S\SQLEXPRESS;Initial Catalog=ResourceSharing;Integrated Security=True";

        public static SqlConnection GetConnection()
        {
            NewCon = new SqlConnection(ConStr);
            return NewCon;
        }

    }



    private void Button_Clicked(object sender, EventArgs e)
    {

                            SqlConnection conn;
            conn = ConnectionManager.GetConnection();
            conn.Open();
            string cmdString = "INSERT into Login values(@username,@password)";
            SqlCommand sqlCommand = new SqlCommand(cmdString, conn);
            sqlCommand.CommandType = CommandType.Text;

            sqlCommand.Parameters.Add("@username", SqlDbType.Text).Value = "josh123";
            sqlCommand.Parameters.Add("@password", SqlDbType.Text).Value = "pwd321";
            sqlCommand.ExecuteNonQuery();
            conn.Close();


    }
预期结果:我的登录表中有1条记录

实际结果:要求我确保SQL Server Browser正在运行时出错


关于如何解决此问题或我可以采取何种替代路线来解决此问题的任何反馈或建议?

您不应该直接从移动设备应用程序连接到数据库服务器,因为您的应用程序将在没有任何警告的情况下挂起或恢复,以及数据库连接协议(如SQL Server的TDS)是有状态的,具有昂贵的设置和拆卸逻辑。这就是为什么移动应用程序几乎总是通过中间web服务器与数据库通信,因为HTTP是无状态的。无论如何,您的计算机的防火墙可能会阻止所有外部SQL server连接。此外,默认情况下,SQL Server Express(您正在使用的)未配置为响应TCP连接,仅响应使用命名管道或共享内存的本地连接。@谢谢您的反馈。您是否有一个建议的方法来存储数据以便以后检索?我的最终目标是创建我自己的应用程序(我有一部android手机,可以是基于android的,也可以是跨平台的),然后把它放在应用程序商店里。@Dai我知道你说的是web服务,但什么web服务才是好的呢?用c#、java等编写你自己的web服务。阅读官方文档,找到适合你的web服务。