Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Przekaż różne wartości MySql do ciągu c#

Jeśli skill2 pole jest typu Char\VarChar2\NChar itp. musimy wyliczyć zapisy np.

using (MySqlConnection cons = new MySqlConnection(MyConString)) {
  cons.Open();

  string query = 
    @"SELECT DISTINCT(skill2) AS skills 
        FROM agentdetails";

  using (new MySqlCommand(query, cons)) {
    using (var reader = command.ExecuteReader()) {
      // collection to store skills
      HashSet<string> hs = new HashSet<string>();

      // Enumerate all records
      while (reader.Read()) 
        hs.Add(Convert.ToString(reader[0])); // and add them into a collection

      // join collection into string
      string skills = string.Join(",", hs.Select(item => $"'{item}'"));

      //TODO: put relevant code here (e.g. return skills)
    } 
  }
}

Edytuj: $"..." to interpolacja ciągów , jeśli używasz starszej wersji c# / .Net, która nie obsługuje (patrz komentarz poniżej) możesz spróbować string.Format zamiast tego:

string skills = string.Join(",", hs.Select(item => string.Format("'{0}'", item)));

Edytuj 2: Nie na stałe zapytania, ale parametryzuj ich; niestety, nie możesz przekazać kolekcji do IN jako pojedynczy parametr:

using (MySqlConnection con2 = new MySqlConnection(MyConString)) {
  con2.Open();

  string hcount = 
    string.Format( @"SELECT SUM(headCount) AS THC, 
                            date AS date1 
                       FROM setshrinkage 
                      WHERE skill IN ({0}) 
                        AND date BETWEEN @today1 AND @today2 
                   GROUP BY date", skill);

  using(MySqlCommand cmd2 = new MySqlCommand(hcount, con2)) {
    //TODO: provide actual RDBMS type - Add(...) instead of AddWithValue(...)
    cmd2.Parameters.AddWithValue("@today1", today1);    
    cmd2.Parameters.AddWithValue("@today2", today2);    

    using (MySqlDataReader myread2 = cmd2.ExecuteReader()) {
      while (myread2.Read()) {
        //TODO: provide relevant code here
      }
    }
  }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uruchom kod php warunkowo

  2. nodejs express/routes i mysql

  3. Porównaj dwa ciągi znaków w MySQL

  4. Relacja jeden-do-wielu w MySQL - jak zbudować model?

  5. Entity Framework — MySQL — problem z formatem daty i godziny