Я посмотрел на форум и попробовал все, что предложили люди, и я не могу найти решение, которое сделает это решение. Программа будет работать до тех пор, пока она не будет подключена к базе данных. Тогда в этой точке он появится следующее сообщение об ошибке:SQL Exception был необработанным: Неверный синтаксис рядом с «Пользователь»
An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll
Additional information: Incorrect syntax near 'user'.
User
быть имя пользователя в моей странице входа.
Вот код, который у меня есть. Может ли кто-нибудь увидеть какие-либо проблемы, которые мне не хватает?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace LoginForm
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
this.Close();
}
private void button2_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(@"Data Source= (LocalDB)\v11.0;AttachDbFilename=C:\Users\Username\Documents\Data.mdf;Integrated Security=True;Connect Timeout=30");
SqlDataAdapter sda = new SqlDataAdapter("Select Count(*) From Login where Username'" +textBox1.Text + "' and Password ='"+textBox2.Text+"'",con);
DataTable dt = new DataTable();
sda.Fill(dt);
if(dt.Rows[0][0].ToString() == "1")
{
this.Hide();
Main ss = new Main();
ss.Show();
}
else
{
MessageBox.Show("please check Username and Password and try again.");
}
}
}
В этом ваша проблема: 'где U sername '"' = отсутствует знак равенства: 'где Username ='" ' –
И _please_ научиться использовать параметры вместо конкатенации SQL - ESPECIALLY при доступе к информации о пользователе/пароле. –
Я вижу синтаксическую ошибку (отсутствует знак равенства). Когда вы его исправили, попробуйте войти в систему как «dan», DELETE FROM Login; - », затем google для SQL-инъекции. – Joe