public List<Service1.IskalniRezultat> IskanjeUkazno(string ukaz) { ukaz = ukaz.Trim(); ukaz = Regex.Replace(ukaz, @"\s+", ""); string[] columns = new[] { " upo133.Avtor.Avtor LIKE '%", " upo133.Knjiga.Naslov LIKE '%", " upo133.Knjiga.LetoIzdaje LIKE '%", " upo133.Jezik.Jezik LIKE '%", " upo133.Gradivo.Vrsta LIKE '%" }; string[] zacUkazi = new string[5]; Dictionary<int, int> orAnd = new Dictionary<int, int>(); int ind = ukaz.IndexOf("OR", 0, StringComparison.InvariantCulture); while (ind != -1) { orAnd.Add(ind, ind + 5); ind = ukaz.IndexOf("OR", ind + 3, StringComparison.InvariantCulture); } ind = ukaz.IndexOf("AND", 0, StringComparison.InvariantCulture); while (ind != -1) { orAnd.Add(ind, ind + 6); ind = ukaz.IndexOf("AND", ind + 3, StringComparison.InvariantCulture); } var keys = from k in orAnd.Keys orderby k descending select k; for (int i = 0; i < columns.Length; i++ ) { string zacUkaz = ukaz + "%') "; foreach (int key in keys) { zacUkaz = zacUkaz.Insert(key, "%' "); zacUkaz = zacUkaz.Insert(orAnd[key], columns[i]); } zacUkazi[i] = "(" + columns[i] + zacUkaz; } string celotniUkaz = zacUkazi[0]; for (int i = 1; i < zacUkazi.Length; i++ ) { celotniUkaz += " OR " + zacUkazi[i]; } command = new SqlCommand("upo133.UkaznoIskanje", con); command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@celotniUkaz", celotniUkaz); DataSet ds = new DataSet("Rezultat"); SqlDataAdapter sql = new SqlDataAdapter(command); sql.Fill(ds); List<Service1.IskalniRezultat> rezultati = new List<Service1.IskalniRezultat>(); foreach (DataRow dataRow in ds.Tables[0].Rows) { Service1.IskalniRezultat ir = new Service1.IskalniRezultat(); ir.ID = (int)dataRow["ID"]; ir.avtor = (string)dataRow["Avtor"]; ir.naslov = (string)dataRow["Naslov"]; ir.vrsta = (string)dataRow["Vrsta"]; ir.jezik = (string)dataRow["Jezik"]; ir.leto = (int)dataRow["LetoIzdaje"]; //ir.dostop = (string)dataRow["Dostopnost"]; rezultati.Add(ir); } return rezultati; }
public List<Service1.IskalniRezultat> IskanjeIzbirno(string avtor, string naslov, string leto, string jezik, string gradivo) { command = new SqlCommand("upo133.IzbirnoIskanje", con); command.CommandType = CommandType.StoredProcedure; if (avtor == " ") { command.Parameters.Add("@avtor", SqlDbType.NVarChar).Value = DBNull.Value; } else { command.Parameters.AddWithValue("@avtor", avtor); } if (naslov == " ") { command.Parameters.Add("@naslov", SqlDbType.NVarChar).Value = DBNull.Value; } else { command.Parameters.AddWithValue("@naslov", naslov); } if (leto == " ") { command.Parameters.Add("@leto", SqlDbType.NVarChar).Value = DBNull.Value; } else { command.Parameters.AddWithValue("@leto", leto); } if (jezik == " ") { command.Parameters.Add("@jezik", SqlDbType.NVarChar).Value = DBNull.Value; } else { command.Parameters.AddWithValue("@jezik", jezik); } if (gradivo == " ") { command.Parameters.Add("@vrsta", SqlDbType.NVarChar).Value = DBNull.Value; } else { command.Parameters.AddWithValue("@vrsta", gradivo); } DataSet ds = new DataSet("Rezultat"); SqlDataAdapter sql = new SqlDataAdapter(command); sql.Fill(ds); List<Service1.IskalniRezultat> rezultati = new List<Service1.IskalniRezultat>(); foreach (DataRow dataRow in ds.Tables[0].Rows) { Service1.IskalniRezultat ir = new Service1.IskalniRezultat(); ir.ID = (int)dataRow["ID"]; ir.avtor = (string)dataRow["Avtor"]; ir.naslov = (string)dataRow["Naslov"]; ir.vrsta = (string)dataRow["Vrsta"]; ir.jezik = (string)dataRow["Jezik"]; ir.leto = (int)dataRow["LetoIzdaje"]; //ir.dostop = (string)dataRow["Dostopnost"]; rezultati.Add(ir); } return rezultati; }
public List<Service1.IskalniRezultat> IskanjeOsnovno(string jezik, string gradivo, string beseda) { command = new SqlCommand("upo133.OsnovnoIskanje", con); command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@vrsta", gradivo); command.Parameters.AddWithValue("@jezik", jezik); command.Parameters.AddWithValue("@iskalniNiz", beseda); DataSet ds = new DataSet("Rezultat"); SqlDataAdapter sql = new SqlDataAdapter(command); sql.Fill(ds); List<Service1.IskalniRezultat> rezultati = new List<Service1.IskalniRezultat>(); foreach (DataRow dataRow in ds.Tables[0].Rows) { Service1.IskalniRezultat ir = new Service1.IskalniRezultat(); ir.ID = (int)dataRow["ID"]; ir.avtor = (string)dataRow["Avtor"]; ir.naslov = (string)dataRow["Naslov"]; ir.vrsta = (string)dataRow["Vrsta"]; ir.jezik = (string)dataRow["Jezik"]; ir.leto = (int)dataRow["LetoIzdaje"]; //ir.dostop = (string)dataRow["Dostopnost"]; rezultati.Add(ir); } return rezultati; }