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

2023-12-31

我刚刚在“Google Cloud Platform”上设置了一个 SQL Server。我在那里创建了一个数据库和表。我使用微软的“SQL Server Management Studio”(SSMS)来连接并创建数据库和表。这一切都奏效了。我根据Google的Cloud SQL说明设置了代理地址127.0.0.1:1443。这一切都奏效了。

但是,我想要做的是使用 C# 应用程序连接到此远程服务器。我使用 C# 程序连接到我的计算机上的 SQL Server 没有问题,但我不知道如何配置以连接到 Google Cloud Platform 上的远程 SQL Server。

对于我的代码,我使用的是System.Data.SqlClient图书馆。

我的连接字符串如下。希望下面的代码足以告诉您发生了什么。当我打电话时loadInfoFromDatabase(),当它点击`connection.Open()时就会失败。我在下面的代码中在它旁边写了“FAILS HERE”。

连接字符串是在尝试不同的事情后的一些猜测。任何帮助,将不胜感激。

Thanks!

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 代理通过 TCP 连接到 SQL Server 实例。

问题出在您的连接字符串上,因为您缺少 TCP 前缀。通过查看Server on ConnectionString https://learn.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlconnection.connectionstring?view=dotnet-plat-ext-5.0#definition您可以在属性中看到描述:

TCP 格式必须开始带有前缀“tcp:”。 (例如服务器 = tcp:服务器名称,端口号)

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

@"Server=tcp:127.0.0.1,1443;Database=MarsDatabase;User ID=sqlserver;Password=AAABBBCCC";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 C# 连接到 Google Cloud SQL Server? 的相关文章

  • 使用具有现有访问令牌的 Google API .NET 客户端

    用例如下 移动应用程序正在通过 Google 对用户进行身份验证 并且在某些时候 我们需要将用户的视频发布到他的 YouTube 帐户 出于实际原因 实际发布应该由后端完成 已经存储在那里的大文件 由于用户已经通过应用程序的身份验证 因此应
  • 使用post方法将多个参数发送到asp.net core 3 mvc操作

    使用 http post 方法向 asp net mvc core 3 操作发送具有多个参数的 ajax 请求时存在问题 参数不绑定 在 dot net 框架 asp net web api 中存在类似的限制 但在 asp net mvc
  • 从 MVC 迁移到 ASP.NET Core 3.1 中的端点路由时,具有角色的 AuthorizeAttribute 不起作用

    我正在尝试将我的项目从 UseMVC asp net core 2 2 兼容样式 升级到 UseEndpoint Routing 并且我的所有请求都被重定向到我的验证失败页面 它与声明有关 如果我删除 Authorize Roles Adm
  • SQL存储过程执行时间差异

    我在 win form 应用程序中遇到奇怪的问题 我正在调用一个存储过程 并且执行大约需要 6 秒 此存储过程接受多个参数 包括一个输出参数 从应用程序级别我使用 Dim dt1 DateTime Now cmd ExecuteNonQue
  • C++ 异步线程同时运行

    我是 C 11 中线程的新手 我有两个线程 我想让它们同时启动 我可以想到两种方法 如下 然而 似乎它们都没有按照我的预期工作 他们在启动另一个线程之前启动一个线程 任何提示将不胜感激 另一个问题是我正在研究线程队列 所以我会有两个消费者和
  • 从多个类访问串行端口

    我正在尝试使用串行端口在 arduino 和 C 程序之间进行通信 我对 C 编程有点陌生 该程序有多种用户控制形式 每一个都需要访问串口来发送数据 我需要做的就是从每个类的主窗体中写入串行端口 我了解如何设置和写入串行端口 这是我的 Fo
  • IronPython:没有名为 json 的模块

    我安装了 IronPython 我的 python 文件如下所示 import sys print sys version import json 运行它的代码 var p Python CreateEngine var scope p C
  • 如何将“外部模板”与由同一类中的模板化成员使用的嵌套类一起使用?

    首先 一些背景信息 我尝试以 Herb Sutter 在他的解决方案中介绍的方式使用 Pimpl 习语 得到了 101 http herbsutter com gotw 101 这在头文件中看起来像这样 include pimpl h h
  • 将数据打印到文件

    我已经超载了 lt lt 运算符 使其写入文件并写入控制台 我已经为同一个函数创建了 8 个线程 并且我想输出 hello hi 如果我在无限循环中运行这个线程例程 文件中的o p是 hello hi hello hi hello hi e
  • 无法将类型“System.IO.Stream”隐式转换为“Java.IO.InputStream”

    我提到了一些类似的问题 但没有一个涉及IO 当我使用时 我在java中使用了相同的代码Eclipse 那次就成功了 但现在我尝试在中使用这段代码Mono for Android C 它不起作用 我正在尝试运行此代码来创建一个InputStr
  • 如何从 Laravel 执行存储过程

    我需要在表单提交数据后执行存储过程 我让存储过程按照我想要的方式工作 并且我的表单正常工作 我只是不知道从 laravel 5 执行 sp 的语句 它应该是这样的 执行 my stored procedure 但我似乎在网上找不到类似的东西
  • 如何在c#中的内部类中访问外部类的变量[重复]

    这个问题在这里已经有答案了 我有两个类 我需要声明两个类共有的变量 如果是嵌套类 我需要访问内部类中的外部类变量 请给我一个更好的方法来在 C 中做到这一点 示例代码 Class A int a Class B Need to access
  • 将构建日期放入“关于”框中

    我有一个带有 关于 框的 C WinForms 应用程序 我使用以下方法将版本号放入 关于 框中 FileVersionInfo GetVersionInfo Assembly GetExecutingAssembly Location F
  • 为什么 ISNUMERIC('.') 返回 1?

    最近我在 SQL Server 中使用 ISNUMERIC 时遇到了一个问题 导致找到了这段代码 SELECT ISNUMERIC 这会返回 1 如 true 所示 难道不应该像 false 一样返回 0 吗 See Numeric 损坏了
  • 有没有一种简单的方法可以让 Visual Studio 2015 使用特定的 ToolsVersion?

    使用特定版本构建项目或解决方案时msbuild我可以使用以下命令选择早期的 net 工具链 toolsversion or tv switch C Program Files x86 MSBuild 14 0 bin msbuild tv
  • 是否可以有一个 out ParameterExpression?

    我想定义一个 Lambda 表达式out范围 有可能做到吗 下面是我尝试过的 C Net 4 0 控制台应用程序的代码片段 正如您在 procedure25 中看到的 我可以使用 lambda 表达式来定义具有输出参数的委托 但是 当我想使
  • 什么是 __declspec 以及何时需要使用它?

    我见过这样的例子 declspec在我正在阅读的代码中 它是什么 我什么时候需要使用这个构造 这是 Microsoft 对 C 语言的特定扩展 它允许您使用存储类信息来赋予类型或函数属性 文档 declspec C https learn
  • 运算符“==”不能应用于“int”和“string”类型的操作数

    我正在编写一个程序 我想到了一个数字 然后计算机猜测了它 我一边尝试一边测试它 但我不断收到不应该出现的错误 错误是主题标题 我使用 Int Parse 来转换我的字符串 但我不知道为什么会收到错误 我知道它说 不能与整数一起使用 但我在网
  • 使用 C# 从 DateTime 获取日期

    愚蠢的问题 给定日期时间中的日期 我知道它是星期二 例如我如何知道它的 tue 2 和 mon 1 等 Thanks 您正在寻找星期几 http msdn microsoft com en us library system datetim
  • 是否可以在 C# 中强制接口实现为虚拟?

    我今天遇到了一个问题 试图重写尚未声明为虚拟的接口方法的实现 在这种情况下 我无法更改接口或基本实现 而必须尝试其他方法 但我想知道是否有一种方法可以强制类使用虚拟方法实现接口 Example interface IBuilder

随机推荐

  • 如何确定隐藏/溢出文本是在元素的顶部还是底部

    我想扩展 Shog9 的答案 如何从javascript判断html元素是否有溢出内容 https stackoverflow com questions 143815 how to determine from javascript if
  • SQL 查询忽略相邻的匹配行

    我有一个活动表 其中包含各种活动和哈希值 actorEntity subjectEntity activity type 在某些情况下 用户可能会在几秒钟内执行完全相同的活动两次 这意味着数据库中会有两个相邻的行具有完全相同的数据 对于某些
  • Objective-C 中的“isa”变量是否等于 Java 中的“instanceof”

    简单的问题 Objective C 中的 isa 实例变量提供与 Java 中的 instanceof 运算符相同的功能是否公平 这些是不同的概念 一个是一个member一个结构体 而另一个是一个operator 模仿严格的解释instan
  • 如何创建一个仅在其类型具有特定成员函数时才编译的类? [复制]

    这个问题在这里已经有答案了 我有一个名为has f我希望它只接受具有以下内容的模板参数f成员函数 我该怎么做呢 这是我尝试过的 template
  • 在 Ruby 中将转义的 unicode (\u008E) 转换为重音字符 (Ž)?

    我对此感到非常困难 contained within MA u008EEIKIAI should be MA EIKIAI nature of string p string3 MA u008EEIKIAI puts string3 MAE
  • 使用 LAPACK 访问子矩阵

    LAPACK 中有一个函数可以给我特定子矩阵的元素吗 如果是的话 C 的语法是什么 或者我需要编码吗 没有用于访问子矩阵的函数 然而 由于 LAPACK 例程中矩阵数据的存储方式 您不需要它 这节省了大量的复制工作 并且 部分 选择了数据布
  • 如何从控制器返回通用响应?

    Net Core 应用程序并调用其他 Net Core Web API 应用程序 我正在调用控制器方法如下 public async Task
  • 使用 java 将 .cer 转换为 .jks

    我想将扩展名为 cer 的文件转换为 jks 文件 有人可以帮我解决这个问题吗 我用谷歌搜索但没有得到太多信息 即使是教程或链接也可以 我猜想使用的是Java Key Store 谢谢 我使用 BouncyCastle 库 最新版本 1 5
  • 将 SCSS 附加到 HTML 文档 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这个问题似乎偏离主题 因为它缺乏足够的信息来诊断问题 更详细地描述您的问题或包括一个最小的例子 http stackoverflow co
  • 焦点输入字段的边框半径

    我们如何调整输入字段焦点的边框半径 HTML
  • 如何使用QtCreator远程调试图形应用程序?

    我开发了一个跨平台的 Qt 应用程序 现在我需要 想要在远程主机上运行它并加载 GUI 表单 我知道有两种方法可以做到这一点 通过连接到 QtCreator 的控制台在远程显示器 可能是虚拟的 上打开应用程序ssh 使用远程 X 会话运行
  • Android Studio 显示错误“无效选项 --enable whpx”

    android studio 在运行 AVD 时显示错误 如下所示 无效选项 启用 whpx 请建议一个更好的解决方案来删除它 尝试这个 Android 模拟器需要 Windows Hypervisor Platform WHPX 确保 W
  • Array.prototype.forEach替代实现参数

    在开发我最新的 Web 应用程序并需要使用Array forEach函数 我不断发现以下代码用于添加对没有内置该函数的旧浏览器的支持 Copyright c Mozilla Foundation http www mozilla org T
  • Hadoop 发行版差异

    有人可以概述一下可用的各种 Hadoop 发行版之间的各种差异吗 Cloudera http www cloudera com hadoop http www cloudera com hadoop Yahoo http developer
  • Laravel Fortify 自定义身份验证重定向

    在 Laravel 强化自定义身份验证过程中 我无法重定向到带有错误消息的登录页面 而我们可以在身份验证中执行此操作 这是定制文档链接 https jetstream laravel com 1 x features authenticat
  • 编译器对看似兼容的函数指针分配发出警告(const 与 no-const)

    我遇到了一些有趣的事情 我认为应该是有效的 首先 编译器 版本 gcc version gcc Debian 4 7 2 5 4 7 2 编译器选项和警告消息 gcc c warn c o warn o warn c 11 5 warnin
  • 编辑淘汰赛 observableArray 中的项目

    我正在寻找一个示例 其中我可以将 observableArray 显示为带有编辑 删除链接的普通文本 可以从单独的表单添加 编辑项目 我无法从编辑链接编辑记录 它会添加新记录 self editItem function p edit co
  • 在 Windows 批处理文件的 FOR 循环中转义星号

    在 Windows 批处理文件中运行以下代码时 除了包含星号的字符串 被跳过 之外 所有内容都正常运行 按编号检查传递的参数 即echo 6 我可以看到星号 只有当传递到 FOR 循环时我才会遇到问题 echo off setlocal e
  • 如何自定义生成的 javadoc 存根?

    在 Netbeans 中 当您键入 在上面的方法中 它生成一个 javadoc 存根 param return 如何自定义生成的文本 我想要一个自定义 javadoc 存根 例如 Author author My custom text p
  • 如何使用 C# 连接到 Google Cloud SQL Server?

    我刚刚在 Google Cloud Platform 上设置了一个 SQL Server 我在那里创建了一个数据库和表 我使用微软的 SQL Server Management Studio SSMS 来连接并创建数据库和表 这一切都奏效了