gpt4 book ai didi

c# - C# 中的备用数据库连接

转载 作者:行者123 更新时间:2023-11-29 18:10:24 25 4
gpt4 key购买 nike

请有人帮助我 - 我有一个问题。

我正在尝试为我用 C# 编写的程序编写备用数据库。你在网站上看到我设法用 if 来做到这一点..

这是我的 php 代码:

//database connection
$conexion = @mysqli_connect("localhost","todo","todo","dbdaq");

//if mainserver connection is not made then it connects to secondary server

if (!$conexion){
$conexion = mysqli_connect("192.168.0.12","todo","","dbdaq");
}

这在 PHP 中可行,但是当我尝试在 C# 中编写类似的内容时,我无法做到这一点。

这是我的 C# 数据库连接类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data;
using MySql.Data.MySqlClient;

namespace ComunicacionCSharp
{
class ConexionBD
{
public static MySqlConnection ObtenerConexion()
{
MySqlConnection Conectar = new MySqlConnection("Server =localhost; database = dbdaq ; Userid = root; password =");
return Conectar;
}
}
}

注意:此类是从我的主 GUI 界面调用的。

namespace ComunicacionCSharp 
{
public partial class Login : Form
{
MySqlConnection conn = ConexionBD.ObtenerConexion();
public string usuario;

public Login()
{
InitializeComponent();
}
}
}

有人可以帮我吗?我曾经有另一个版本的数据库连接,如果找不到连接,则会显示错误消息,但我用 C# 编码了一段时间,再也找不到那段代码了,而且我不记得该怎么做:(

最佳答案

mysqli_connect 返回打开连接的句柄,并在 C# 代码中传递未打开的连接。您必须稍微更改一下代码,如下所示:

public static MySqlConnection ObtenerConexion()
{

MySqlConnection Conectar = null;

try
{
Conectar = new MySqlConnection(yourFirstConnectionString);
Conectar.Open();
}
catch
{
try
{
Conectar = new MySqlConnection(yourSecondConnectionString);
Conectar.Open();
}
catch{ }
}

return Conectar;

}

记住无论你在哪里使用它,都要检查连接,如果两个连接都失败,它将返回 null。

关于c# - C# 中的备用数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47460886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com