使用MySQL服务器在C#中创建登录表单(主要问题)?

使用MySQL服务器在C#中创建登录表单(主要问题)?,c#,mysql,winforms,login,C#,Mysql,Winforms,Login,我在C#Winforms中有一个带有登录按钮的登录表单(如屏幕截图所示)。我想点击按钮,检查是否存在具有给定名称的用户。我使用以下代码(我只提交必要的代码): 假设数据库中我的users表中的第二个字段是username,那么假设IsDBNull()有一个参数1(如果我们从0开始计算),我想问我做错了什么,因为有这样一个用户,即该字段不是空的,但我想显示的第二个表单不想打开。我想问为什么会这样 如果SQL在web服务器上(甚至是XAMPP),我建议通过PHP输出信息。这还允许通过webReque

我在C#Winforms中有一个带有登录按钮的登录表单(如屏幕截图所示)。我想点击按钮,检查是否存在具有给定名称的用户。我使用以下代码(我只提交必要的代码):

假设数据库中我的
users
表中的第二个字段是
username
,那么假设
IsDBNull()
有一个参数1(如果我们从0开始计算),我想问我做错了什么,因为有这样一个用户,即该字段不是空的,但我想显示的第二个表单不想打开。我想问为什么会这样


如果SQL在web服务器上(甚至是XAMPP),我建议通过PHP输出信息。这还允许通过webRequest库比较登录密码等。我不建议在最终版本中使用此代码,但我建议将其用于测试和构建

要使代码正常工作,您需要做以下几件事:

  • 作为任何类型的web服务器,XAMPP都适合本地测试,因为它与Apache和phpMyAdmin一起提供
  • 一个SQL数据库,至少有一个名为username的部分,其中输入了一项
之后,只需添加以下代码,更新C#代码的var webRequest部分中的链接,然后从那里开始

在C#的顶部,您需要包括:使用System.Net

C#登录按钮点击

// Connects to the website
var webRequest = WebRequest.Create("http://yourwebsite.com/programLogin.php?username=" + textBox1.Text);
using (var response = webRequest.GetResponse())
using (var content = response.GetResponseStream())
using (var reader = new StreamReader(content))
{
    // This gets all of the info given out by the website
var info = reader.ReadToEnd();

    // Comparing to expected outputs
    if (info == "User found in the database")
    {
        MessageBox.Show("Username Exists", "Login Form");
    }
    else if (info == "Username not found")
    {
        MessageBox.Show("Username Not Found", "Login Form");
    }
    else
    {
        // This will most likely only thow if the website is down OR if there is a HTTP error 500 OR unsuccessful login to the database
        MessageBox.Show("Unknown Error", "Login Form");
    }
}
programLogin.php

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "database";

$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn)
{
    die("Connection failed: " . mysqli_connect_error());
}

$user = $_GET['username'];

if (isset($user))
{
    $sql = "SELECT username FROM users WHERE username='$user'";
    $result = $conn->query($sql);

    if ($result->num_rows > 0)
    {
        while($row = $result->fetch_assoc())
        {
            // $row['username']; will show the informaiton from the database;
            echo "User found in the database";
        }
    }
    else
    {
        echo "Username not found";
    }
}
?>

如果这还不能回答您的问题,请向我提供有关您的计划所需内容的更多信息,我会向您提供更多帮助/资源

此代码未经测试


编辑:添加所需的using,将其更改为您感兴趣的特定列。