0

我无法将我的 PHP SQL 查询转换为 Vb.Net。

这是我的 PHP 代码:

<?php 
$ServerName = "Farbod-PC\SQLExpress";
$User = "sa";
$Pass = "admin123";
$DB = "Account";

$user = sql_clean($_GET['Username']);
$passhash = sql_clean($_GET['Password']);

$connectionInfo = array("UID"=>$User,"PWD"=>$Pass,"DATABASE"=>$DB);
$conn = sqlsrv_connect( $ServerName, $connectionInfo) or die('Database connect Fail.');


if( $conn ) {
} else {
     echo " <br> Connection could not be established. <br> <br>";
     die( print_r( sqlsrv_errors(), true));
}

$exec = sqlsrv_query($conn, "SELECT nEMID, nAuthID, sUserPass FROM tAccounts where sUsername = '$user'");
$AccountData = sqlsrv_fetch_array($exec);
$file = file('LauncherInfo.txt', FILE_IGNORE_NEW_LINES);

$sql = "SELECT nEMID, nAuthID, sUserPass FROM tAccounts where sUsername = '$user'";
$params = array();
$options =  array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
$stmt = sqlsrv_query( $conn, $sql , $params, $options );

$row_count = sqlsrv_num_rows( $stmt );

    foreach ($file as $line) {
        $line = trim($line);
        if ($line) {
            $splitLine = explode(' = ',$line);
            $data[$splitLine[0]] = $splitLine[1];
        }
    }

    if($exec)

{
    if($row_count != 1)
    {
        die('wud');
    }

    if ($AccountData ['nAuthID'] == -2) {
        die ('INV');
    } else if ($AccountData ['nAuthID'] == -1) {
        die ('BAN');
    } else if ($AccountData ['nAuthID'] == 0) {
        die ('EVR');
    } else if ($AccountData ['nAuthID'] == 1) {
        if ($data['MAINT'] == "True") {
        die ('MM');
        }
    } else if ($AccountData ['nAuthID'] == 2) {
        //Continue and allow user to log in.
    } else {
        die ('NAUTH');
    }

    $PlaintxtPass = $AccountData['sUserPass'];
    $PlaintxtnEMID = $AccountData['nEMID'];
    if (MD5($PlaintxtPass) == $passhash)
    {
        $Token = RandomToken(35);

        $setToken = null;

        if (sqlsrv_num_rows(sqlsrv_query($conn, "SELECT * FROM tTokens WHERE nEMID = '".$PlaintxtnEMID."'")) >= 1)
        {
            sqlsrv_query($conn, "DELETE FROM tTokens WHERE nEMID = '".$PlaintxtnEMID."'");
            $setToken = sqlsrv_query($conn, "INSERT INTO tTokens (nEMID, sToken) VALUES('".$PlaintxtnEMID."', '".$Token."')");
        }
        else
            $setToken = sqlsrv_query($conn, "INSERT INTO tTokens (nEMID, sToken) VALUES('".$PlaintxtnEMID."', '".$Token."')");      

        if ($setToken)
            die('OK#'.$Token.'#'.$AccountData ['nAuthID']);
        else
            die('SetToken Error');
    }
    else
    {
        die('wud');
    }
}
else
{
    die('Query Failed');
}

sqlsrv_close();

function sql_clean($str)
{
    $search  = array("\\", "\0", "\n", "\r", "\x1a", "'", '"');
    $replace = array("", "", "", "", "", "", "");
    return str_replace($search, $replace, $str);
}

function RandomToken( $length )
{
    $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        $str = "";
    $size = strlen( $chars );
    for( $i = 0; $i < $length; $i++ ) {
        $str .= $chars[ rand( 0, $size - 1 ) ];
    }

    return $str;
}
?>

到目前为止,这是我的 Vb.net 代码:

Imports System.Net
Imports System.Data.SqlClient

Public Class Form1

    Dim SQLHost As String = "Farbod-PC\SQLEXPRESS"
    Dim SQLUserName As String = "sa"
    Dim SQLPassword As String = "admin123"
    Dim Server As String = "Account"

    Dim conn As SqlConnection = New SqlConnection("Data Source=" & SQLHost & "; Initial Catalog=" & Server & "; User ID=" & SQLUserName & "; Password=" & SQLPassword & ";")

    Dim strSQL As String

    Dim exec As String = "SELECT nEMID, nAuthID, sUserPass FROM tAccounts where sUsername = 'user'"

End Class

我不确定我应该采取哪种方式来做这件事。如果有人可以提供帮助,我将不胜感激。谢谢。

4

1 回答 1

0

Farbod,您似乎在这里提出了一个非常模糊和广泛的问题。如果您在特定问题上需要帮助,StackOverflow 非常棒,但您似乎真正需要的是一些 VB.NET 教程。

尽管我要说的一件事是这样;存储过程是你的朋友。

于 2013-08-16T14:35:00.993 回答