Кто-то сказал вам, что вы позволяете злоумышленникам проникнуть в ваш db
и получить любую информацию или удалить все, что они хотят? Нет?
Я должен сказать Правин, вы всегда должны использовать параметризованные запросы или пытаться использовать Stored Procedures
для чтения / записи / удаления чего-либо из вашей базы данных.
Более того, ваш запрос делает не имеет никакого смысла, поэтому я предполагаю, что вы хотите выбрать что-то, где company_code
равно чему-то, а employee id
равно чему-то и password
равно чему-то.
Вот как это должно быть сделано с учетом SqlInjections
.
protected void Button1_Click1(object sender, EventArgs e)
{
var dt = new DataTable();
try
{
using(SqlCommand cmd = new SqlCommand("Select * from Company_Master cm join Employee_Master em on cm.Company_Code = em.Company_Code where cm.Company_Code = @companyCode and em.Emp_ID = @employeeId and em.Emp_Pass = @password", conn))
{
cmd.Parameters.AddWithValue("@companyCode", TextBox1.Text);
cmd.Parameters.AddWithValue("@employeeId", TextBox2.Text);
cmd.Parameters.AddWithValue("@password", Password1.Text);
conn.Open();
var sdr = cmd.ExecuteReader();
dt.Load(sdr);
if (dt.Rows.Count > 0)
{
Label1.Text = "sign up done";
}
else
{
Label1.Text = "wrong login";
}
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
Обратите внимание, я изменил ваш запрос для поддержки sql join
и изменил запрос, чтобы он был параметризованным запросом в using
блок. Кроме того, набор данных был изменен на DataTable, так как я заметил, что вы не получаете несколько таблиц и ссылаетесь на нулевой индекс набора данных Tables
.