Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एक सी # स्ट्रिंग में MySql अलग-अलग मान पास करें

अगर skill2 फ़ील्ड प्रकार का है Char\VarChar2\NChar आदि। हमें गणना . करना होगा रिकॉर्ड उदा.

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)
    } 
  }
}

संपादित करें: $"..." एक स्ट्रिंग इंटरपोलेशन है , यदि आप c# / .Net के ईलियर संस्करण का उपयोग करते हैं जो समर्थन नहीं करता यह (नीचे टिप्पणी देखें) आप कोशिश कर सकते हैं string.Format इसके बजाय:

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

2 संपादित करें: हार्डकोडनहीं करें क्वेरी, लेकिन parametrize उन्हें; अफसोस, आप किसी संग्रह को IN . में पास नहीं कर सकते एकल पैरामीटर के रूप में:

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. ग्रुप बाय क्लॉज के बिना MySQL एग्रीगेट फंक्शन

  2. MySQL के लिए Google क्लाउड SQL को ऑन-प्रेम सर्वर पर माइग्रेट करना

  3. PHP केवल 1048576 वर्णों को सरणी में संग्रहीत करता है

  4. विशेषता त्रुटि:मॉड्यूल 'mysql' में कोई विशेषता नहीं है 'कनेक्टर'

  5. अपसामान्यीकृत डेटाबेस तालिकाओं को अद्यतन करना