2015-02-11, 12:44
  #1
Medlem
Hej,

Ruskigt ny på detta så ha lite överseende är ni snälla

Håller på att bygger en liten applikations som man ska kunna göra enkla sökningar i 2 (Test & Prod) olika databaser med. Har en ide med två groupbox som innehåller några radiobutton, i den ena boxen väljer man vilken miljö man ska söka i och vad man söker efter väljer man i den andra.

En textbox där man fyller i vad man vill söka efter och en knapp som skickar frågan.

Se bild: http://imgbox.com/D0D1fEZ6

Jag har löst connection stringarna och jag har också koll på hur man utformar SELECT satserna men jag får inte till logiken till hur jag får det att fungera.

Jag måste på nåt sätt lagra sql-satserna i knapparna och sedan blir det väl någon IF-sats beroende på vad som väljs. Sedan ska t.ex fakturanumret man fyller i fångas upp från textboxen och placeras i satsen som sedan skickas till databasen.

Lite hjälp med hur jag utformar det hela skulle uppskattas.
Citera
2015-02-11, 13:02
  #2
Medlem
askers avatar
Varför tror du att SQL-uttrycken måste sparas i radio-knapparna? Spara istället queryn i variabler och hämta den du behöver. För att göra det ofantligt enkelt för sig så skulle din lösning kunna se ut typ så här:
[PHP]
const string InvoiceQuery = "select * from Invoice where InvoiceNr = '{0}'"
const string AccountQuery = "select * from Account where AccountNr = '{0}'"
const string CustomerQuery = "select * from Customer where CustomerNr = '{0}'"

private void onFindClick() {
string query;
string text = findTextBox.Text;
if(invoiceRadio.Checked)
query = InvoiceQuery;
if(accountRadio.Checked)
query = AccountQuery;
if(CustomerRadio.Checked)
query = CustomerQuery;

query = string.Format(query, text);
executeSQLQuery(query, productionRadio.Checked);
}

private void executeSQLQuery(string sqlQuery, bool productionDatabase) {
//gör något smart
}
[/PHP]
Citera
2015-05-19, 00:40
  #3
Medlem
Tänk på säkerheten, sql-injection osv. kolla så ingen query kan utöka queryn med nested sql-query.
T.ex

denna är OK:
const string InvoiceQuery = "select * from Invoice where InvoiceNr = '{0}'"

denna är inte OK:

const string InvoiceQuery = string.Format("select * from Invoice where {0}"), "1=1 and Delete from Invoice")

lite ungefär..
Citera
2015-05-19, 09:48
  #4
Medlem
Sane?s avatar
Citat:
Ursprungligen postat av recyclebin2
Tänk på säkerheten, sql-injection osv. kolla så ingen query kan utöka queryn med nested sql-query.
T.ex

denna är OK:
const string InvoiceQuery = "select * from Invoice where InvoiceNr = '{0}'"

denna är inte OK:

const string InvoiceQuery = string.Format("select * from Invoice where {0}"), "1=1 and Delete from Invoice")

lite ungefär..
Nej, verkligen inte.
Båda sätten är öppna för sql injection.
Bygg inte upp strängar med sql-uttryck, använd sql-parametrar ffs!
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in