如何使用C#连接到Google Cloud SQL Server?

How do I connect to Google Cloud SQL Server using C#?(如何使用C#连接到Google Cloud SQL Server?)
本文介绍了如何使用C#连接到Google Cloud SQL Server?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚刚在Google Cloud平台上设置了一个SQL Server。&我在那里创建了一个数据库和表。我使用了微软的SQL Server Management Studio(SSMS)来连接和创建数据库和表。这一切都奏效了。我根据Google的Cloud SQL说明设置了代理地址127.0.0.1:1443。这一切都奏效了。 但是,我想要做的是使用C#应用程序连接到这个远程服务器。我在我的机器上使用C#程序连接到SQL Server没有问题,但我不知道如何配置才能连接到Google Cloud平台上远程程序上的程序。

对于我的代码,我使用System.Data.SqlClient库。

我的连接字符串如下。希望下面的代码足以告诉您发生了什么。当我调用loadInfoFromDatabase()时,它在点击`Connection.Open()时失败。在下面的代码中,我在它旁边写了&FAIES HERE。

连接字符串是在尝试了不同的方法后才猜测出来的。如有任何帮助,我们将不胜感激。

谢谢!

public string _connectionString = @"Server=127.0.0.1:1443;Database=MarsDatabase;User Id=sqlserver;Password=AAABBBCCC";

private void loadInfoFromDatabase()
{
    string firstName, middleName, lastName, email, password, assignedTables;
    string connectionString;
    SqlDataReader dataReader;

    connectionString = _connectionString;
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open(); //FAILS HERE... 

        SqlCommand command = connection.CreateCommand();
        SqlTransaction transaction;

        // Start a local transaction.
        transaction = connection.BeginTransaction("loadInfoFromDatabse");

        // Must assign both transaction object and connection
        // to Command object for a pending local transaction
        command.Connection = connection;
        command.Transaction = transaction;

        try
        {                  
            command.CommandText = "Select * From Info";

            // Attempt to commit the transaction.
            dataReader = command.ExecuteReader();
           
            while (dataReader.Read())
            {
               ...
            }

            dataReader.Close();
            command.Dispose();
            // connection.Close();
            transaction.Commit();
            Console.WriteLine("Selection from managers table worked.");
        }
        catch (Exception ex)
        {
           
        }
    }
}

推荐答案

我看到您正在使用Cloud SQL Proxy通过Tcp连接到SQL Server实例。

问题出在您的连接字符串上,因为您缺少tcp前缀。通过查看ConnectionString属性上的Server,您可以看到其中的说明:

tcp格式必须以前缀";tcp:";开头。(例如,服务器=tcp:服务器名,端口号)

要解决此问题,请将您的连接字符串更改为:

@"Server=tcp:127.0.0.1,1443;Database=MarsDatabase;User ID=sqlserver;Password=AAABBBCCC";

这篇关于如何使用C#连接到Google Cloud SQL Server?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

DispatcherQueue null when trying to update Ui property in ViewModel(尝试更新ViewModel中的Ui属性时DispatcherQueue为空)
Drawing over all windows on multiple monitors(在多个监视器上绘制所有窗口)
Programmatically show the desktop(以编程方式显示桌面)
c# Generic Setlt;Tgt; implementation to access objects by type(按类型访问对象的C#泛型集实现)
InvalidOperationException When using Context Injection in ASP.Net Core(在ASP.NET核心中使用上下文注入时发生InvalidOperationException)
LINQ many-to-many relationship, how to write a correct WHERE clause?(LINQ多对多关系,如何写一个正确的WHERE子句?)