Note that there are some explanatory texts on larger screens.

plurals
  1. POSQL multiple statements, INSERT not working
    text
    copied!<p>I am developing a web app and have encountered a problem. I need to insert username and ip address into a SQL database table "log" when someone tries (successfully or unsuccessfully) to login. ID, time and date are inserted automatically... For some reason I am unable to get it working in my login form. INSERT statement works ok if I initiate it from another form, but I can't get it working together with the SELECT statement I use for checking login credentials. </p> <p>I have tried different solutions, but none of them inserts data into the table... It does not throw an error, it just doesn't insert a new row into "log" table.</p> <p>Any help is appreciated. :)</p> <pre><code>protected void btnLog_Click(object sender, EventArgs e) { using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["dbConn"].ToString())) { string username = null; string password = null; string ipAddress = null; SymCryptography cryptic = new SymCryptography(); SqlCommand cmdSelect = new SqlCommand(); SqlCommand cmdLog = new SqlCommand(); SqlDataReader myReader = null; cmdSelect.Connection = conn; cmdLog.Connection = conn; cmdSelect.CommandText = "SELECT * FROM uporabniki WHERE up_ime=@up_ime AND geslo=@geslo"; cmdSelect.CommandType = CommandType.Text; cmdLog.CommandText = "INSERT INTO log (up_ime, ip) VALUES (@up_ime, @ip)"; cmdLog.CommandType = CommandType.Text; cmdSelect.Parameters.Add("@up_ime", SqlDbType.NVarChar, 20).Value = tbUsr.Text; cmdSelect.Parameters.Add("@geslo", SqlDbType.NVarChar, 20).Value = cryptic.Encrypt(tbPwd.Text); cmdLog.Parameters.Add("@up_ime", SqlDbType.NVarChar, 20).Value = tbUsr.Text; cmdLog.Parameters.Add("@ip", SqlDbType.NVarChar, 20).Value = ipAddress; conn.Open(); try { //cmdLog.ExecuteNonQuery(); I tried it here, but it doesn't work myReader = cmdSelect.ExecuteReader(); if (myReader.Read()) { username = myReader["up_ime"].ToString(); password = myReader["geslo"].ToString(); Session["rights"] = myReader["pravice"]; Session["login"] = "OK"; pravice = true; } myReader.Close(); //cmdLog.ExecuteNonQuery(); I tried it here, but it doesn't work } catch (Exception ex) { Console.WriteLine(ex.ToString()); } conn.Close(); } //I tried to open connection again, but stil INSERT does not work /* using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["dbConn"].ToString())) { string ipAddress = null; SqlCommand cmdLog = new SqlCommand(); cmdLog.Connection = conn; cmdLog.CommandText = "INSERT INTO log (up_ime, ip) VALUES (@up_ime, @ip)"; cmdLog.CommandType = CommandType.Text; cmdLog.Parameters.Add("@up_ime", SqlDbType.NVarChar, 20).Value = tbUsr.Text; cmdLog.Parameters.Add("@ip", SqlDbType.NVarChar, 20).Value = ipAddress; conn.Open(); try { cmdLog.ExecuteNonQuery(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } conn.Close(); } if (pravice == true) { Response.Redirect("Default.aspx"); } else { Response.Redirect("Login.aspx"); }*/ } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload