MySQL Exception в asp.net - PullRequest
       10

MySQL Exception в asp.net

0 голосов
/ 03 октября 2018

Я пробовал страницу входа в веб-приложении Visual Studio 2017 asp.net c # с использованием MySQL, и он показывает следующую ошибку:

Строка 33: queryStr = "SELECT * FROM webapp.userregistration ГДЕ имя пользователя= '"+ usernameTextBox.Text +"' AND password = '"+ passwordTextBox.Text;Строка 34: cmd = new MySql.Data.MySqlClient.MySqlCommand (queryStr, conn);Строка 35: reader = cmd.ExecuteReader ();Строка 36: Строка 37: name = "";

Исходный файл: C: \ Users \ HOME \ source \ repos \ WebPage \ WebPage \ default.aspx.cs Строка: 35

СтекТрассировка:

[MySqlException (0x80004005): в синтаксисе SQL возникла ошибка;проверьте правильность синтаксиса в строке 1, соответствующую вашей версии сервера MySQL, в строке 1]
MySql.Data.MySqlClient.MySqlStream.ReadPacket () + 309
MySql.Data.MySqlClient.NativeDriver.GetResult (Int32 &ouredRow,Int64 & insertId) + 67
MySql.Data.MySqlClient.Driver.GetResult (Int32 StatementId, Int32 & disabledRows, Int64 & pasteId) + 17
MySql.Data.MySqlClient.Driver.NextResult (оператор Boole +1)MySql.Data.MySqlClient.EventArgs e) в C: \ Users \ HOME \ source \ repos \ WebPage \ WebPage \ default.aspx.cs: 35
System.Web.UI.WebControls.Button.OnClick (EventArgs e) + 9782450
Система.Web.UI.WebControls.Button.RaisePostBackEvent (String eventArgument) + 204
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent (String eventArgument) + 12
System.Web.UI.Page.RaisePostBackEvent (IPostBackEventHandler sourceControl, String eventArgument) + 15
System.Web.UI.Page.RaisePostBackEvent (NameValueCollection postData)UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) + 1639

Код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System;
using System.Data;

using MySql.Data;
using MySql.Data.MySqlClient;

namespace WebPage
{
    public partial class _default : System.Web.UI.Page
    {
        MySql.Data.MySqlClient.MySqlConnection conn;
        MySql.Data.MySqlClient.MySqlCommand cmd;
        MySql.Data.MySqlClient.MySqlDataReader reader;
        String name;
        protected void Page_Load(object sender, EventArgs e)
        {
            DoSQLQuery();
        }

        protected void Submit_Click(object sender, EventArgs e)
        {

            String connString = System.Configuration.ConfigurationManager.ConnectionStrings["WebAppConnString"].ToString();
            conn = new MySql.Data.MySqlClient.MySqlConnection(connString);
            conn.Open();
            String queryStr = "";
             queryStr = "SELECT * FROM webapp.userregistration WHERE username='" + usernameTextBox.Text+ "'AND password='" + passwordTextBox.Text;
            cmd = new MySql.Data.MySqlClient.MySqlCommand(queryStr,conn);
            reader = cmd.ExecuteReader();

            name = "";
            while (reader.HasRows && reader.Read())
            {

                {
                    name = reader.GetString(reader.GetOrdinal("username")) + " " + reader.GetString(reader.GetOrdinal("password"));
                }

                //if the data matches the rows (username, password), then you enter to the page
                if (reader.HasRows)
                {
                    Session["uname"] = name;

                    Response.BufferOutput = true;
                    Response.Redirect("login.aspx", false);

                }
                else
                {
                    passwordTextBox.Text = "invalid user";

                }
            }

            reader.Close();
            conn.Close();
        }


        private void DoSQLQuery()
        {
            try
            {

            }
            catch (Exception e)
            {
                passwordTextBox.Text = e.ToString();
            }
        }
    }
}

1 Ответ

0 голосов
/ 03 октября 2018
Строка

на стороне запроса содержит ошибку и одновременно опасна смотрите здесь

ваш запрос выводится

SELECT * FROM webapp.userregistration ГДЕusername = 'admin'AND password =' ​​12345

последний символ не существует '

cmd = new MySql.Data.MySqlClient.MySqlCommand("SELECT * FROM webapp.userregistration WHERE username = @name  and password=@pas", conn);

cmd.Parameters.AddWithValue("@name", usernameTextBox.Text);
cmd.Parameters.AddWithValue("@pas", passwordTextBox.Text);
...