请有人帮帮我 - 我有问题。
我正在尝试为我在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#中编码了一段时间,再也找不到那段代码了,我不记得怎么做了:(
答案 0 :(得分:0)
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。