Select Statement未被读取但在插入INTO查询之前工作正常

时间:2017-09-10 11:23:07

标签: c# sql-server

在我放置SELECT活动日志之后,我的INSERT INTO声明无法读取/执行,但我的展示位置有问题之前,我的ClayLink.con.Open(); string userid = txt_login.Text; string password = txt_password.Text; ClayLink.cmd = new SqlCommand("SELECT UserType FROM Users WHERE Username='" + userid + "'AND Password='" + password + "'", ClayLink.con); ClayLink.cmd = new SqlCommand("INSERT INTO ALog values ('" + txt_login.Text + "','" + admin.lbl_Username.Text + "','" + admin.label7.Text + "', 'Login Button Click','')", ClayLink.con); DataTable dt = new DataTable(); ClayLink.adapter = new SqlDataAdapter(ClayLink.cmd); ClayLink.adapter.Fill(dt); ClayLink.con.Close(); try { if (dt.Rows.Count == 1) { if (dt.Rows[0][0].ToString() == "Administrator") { MessageBox.Show("Successfully Logged in as Administrator!"); admin.Show(); ClayLink.con.Close(); ClayLink.con.Open(); string str = "select * from Users where Username = '" + txt_login.Text + "'"; ClayLink.cmd = new SqlCommand(str, ClayLink.con); ClayLink.dataReader = ClayLink.cmd.ExecuteReader(); ClayLink.dataReader.Read(); admin.lbl_Username.Text = ClayLink.dataReader["Firstname"].ToString(); admin.lbl_Usertype.Text = ClayLink.dataReader["UserType"].ToString(); this.txt_login.Clear(); this.txt_password.Clear(); this.Hide(); ClayLink.con.Close(); } } } 声明无法获取帮助吗?

const input = "whatever";

for(const category in items){
 for(const question of items[category]){
   if(question.question === input){
     //do whatever
     //optionally: return; 
   }
 }
}

1 个答案:

答案 0 :(得分:2)

您有以下两行代码:

ClayLink.cmd = new SqlCommand("SELECT UserType FROM Users WHERE Username='" + userid + "'AND Password='" + password + "'", ClayLink.con);
ClayLink.cmd = new SqlCommand("INSERT INTO ALog values ('" + txt_login.Text + "','" + admin.lbl_Username.Text + "','" + admin.label7.Text + "', 'Login Button Click','')", ClayLink.con);

您正在设置ClayLink.cmd两次。该值是第二次的值。

其他说明:

  • 使用参数而不是使用输入字符串复制查询字符串。
  • 不要传递未加密的密码。
  • 使用insert时列出要插入的列。