最初我正在连接我的SQL查询,然后我被告知最好使用参数化查询来防止SQL注入。我现在已经做到了,一切都很好,但是,在昨天发布论坛上的福彩12选5走势图疑问没有正常工作,福彩12选5走势图人告诉我,我应该使用SSM来编写我的SQL查询,然后将它们粘贴回福彩12选5走势图字符串Visual Studio中的变量?
我要粘贴一些我的代码,有人可以告诉我我是否正确完成了一切?我在代码中写了所有查询,如果我不得不回去改变一切,它会吮吸,看到我下周的截止日期
Thanks guys!
我要粘贴一些我的代码,有人可以告诉我我是否正确完成了一切?我在代码中写了所有查询,如果我不得不回去改变一切,它会吮吸,看到我下周的截止日期
C#:
public partial class adminLogin : Form
{
SqlCommand cmd;
private static IsqlDataFunctions _isqlDataFunctions;
public adminLogin(IsqlDataFunctions dataFunctions)
{
_isqlDataFunctions = dataFunctions;
}
public static void creationOfSqlDataFunctions()
{
SqlDataFunctions sqlDataFunctions = new SqlDataFunctions();
new adminLogin(sqlDataFunctions);
}
public adminLogin()
{
creationOfSqlDataFunctions();
InitializeComponent();
}
private void adminSignUpBtn_Click(object sender, EventArgs e)
{
if (txtAdminFirstName.Text == "" || txtAdminLastName.Text == "" || comboBoxAdminPosition.Text == "" || txtAdminPass.Text == "" || txtAdminContact.Text == "" || txtAdminEmail.Text == "")
{
MessageBox.Show("Error: please ensure all fields have been entered!");
}
else
{
try
{
string query_1 = "Insert into employee (firstName, lastName, position, contactNumber) VALUES (@firstName, @lastName, @position, @contact)";
string query_2 = "select employeeId FROM employee WHERE employeeId = (SELECT MAX(employeeId) FROM employee)";
string query_3 = "Insert into employeeLogin (email, password, employeeId) VALUES (@email, @password, @employeeId)";
_isqlDataFunctions.GetConnection().Open();
cmd = new SqlCommand(query_1, _isqlDataFunctions.GetConnection());
cmd.Parameters.AddWithValue("@firstName", txtAdminFirstName.Text.Trim());
cmd.Parameters.AddWithValue("@lastname", txtAdminLastName.Text);
cmd.Parameters.AddWithValue("@position", comboBoxAdminPosition.Text);
cmd.Parameters.AddWithValue("@contact", txtAdminContact.Text);
cmd.ExecuteNonQuery();
cmd = new SqlCommand(query_2, _isqlDataFunctions.GetConnection());
var employeeid = cmd.ExecuteScalar();
cmd = new SqlCommand(query_3, _isqlDataFunctions.GetConnection());
cmd.Parameters.AddWithValue("@email", txtAdminEmail.Text.Trim());
cmd.Parameters.AddWithValue("@password", SqlDataFunctions.hashPassword(txtAdminPass.Text.Trim()));
cmd.Parameters.AddWithValue("@employeeId", employeeid);
cmd.ExecuteNonQuery();
_isqlDataFunctions.GetConnection().Close();
MessageBox.Show("Your account has been registered succesfully!");
clearFields();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
};
}
}
private void adminSignInBtn_Click(object sender, EventArgs e)
{
string query = "SELECT * FROM employeeLogin where email= @email AND password = @password ";
cmd = new SqlCommand(query, _isqlDataFunctions.GetConnection());
cmd.Parameters.AddWithValue("@email", adminSignInEmail.Text.Trim());
cmd.Parameters.AddWithValue("@password", SqlDataFunctions.hashPassword(adminSignInPass.Text.Trim()));
_isqlDataFunctions.Login(cmd, new adminLogin(), new TGCS_backend.backend());
}
private void customerLoginbtn_Click(object sender, EventArgs e)
{
var userLogin = new SignIn();
this.Hide();
userLogin.Show();
}
private void clearFields()
{
txtAdminFirstName.Text = "";
txtAdminLastName.Text = "";
comboBoxAdminPosition.Text = "";
txtAdminPass.Text = "";
txtAdminContact.Text = "";
txtAdminEmail.Text = "";
}
private void ExitBtn_Click(object sender, EventArgs e)
{
Environment.Exit(0);
}
}