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

सी # में SQL सर्वर डेटाबेस से डेटा कैसे पुनर्प्राप्त करें?

 public Person SomeMethod(string fName)
        {
            var con = ConfigurationManager.ConnectionStrings["Yourconnection"].ToString();

            Person matchingPerson = new Person();
            using (SqlConnection myConnection = new SqlConnection(con))
            {
                string oString = "Select * from Employees where [email protected]";
                SqlCommand oCmd = new SqlCommand(oString, myConnection);
                oCmd.Parameters.AddWithValue("@Fname", fName);           
                myConnection.Open();
                using (SqlDataReader oReader = oCmd.ExecuteReader())
                {
                    while (oReader.Read())
                    {    
                        matchingPerson.firstName = oReader["FirstName"].ToString();
                        matchingPerson.lastName = oReader["LastName"].ToString();                       
                    }

                    myConnection.Close();
                }               
            }
            return matchingPerson;
        }

यहां ध्यान देने योग्य कुछ बातें:मैंने एक पैरामीट्रिज्ड क्वेरी का उपयोग किया है, जो आपके कोड को सुरक्षित बनाती है। जिस तरह से आप "where x = "+ Textbox.Text +"" के साथ सेलेक्ट स्टेटमेंट बना रहे हैं भाग आपको SQL इंजेक्शन तक खोलता है।

मैंने इसे इसमें बदल दिया है:

  "Select * from Employees where [email protected]"
  oCmd.Parameters.AddWithValue("@fname", fName);  

तो कोड का यह ब्लॉक क्या करने जा रहा है:

अपने डेटाबेस के विरुद्ध एक SQL कथन निष्पादित करें, यह देखने के लिए कि क्या आपके द्वारा प्रदान किए गए किसी भी प्रथम नाम से मेल खाता है। यदि ऐसा है, तो वह व्यक्ति व्यक्ति ऑब्जेक्ट में संग्रहीत किया जाएगा (कक्षा के लिए मेरे उत्तर में नीचे देखें)। यदि वहां है कोई मेल नहीं है, व्यक्ति वस्तु के गुण null होंगे .

स्पष्ट रूप से मुझे ठीक से पता नहीं है कि आप क्या करने की कोशिश कर रहे हैं, इसलिए ध्यान देने योग्य कुछ चीजें हैं:जब मेल खाने वाले नाम वाले 1 से अधिक व्यक्ति होंगे, तो केवल अंतिम को बचाया जाएगा और आपको वापस कर दिया जाएगा। इस डेटा को स्टोर करने में सक्षम होना चाहते हैं, तो आप उन्हें List<Person> . में जोड़ सकते हैं ।

इसे क्लीनर बनाने के लिए व्यक्ति वर्ग:

 public class Person
    {
            public string firstName { get; set; }
            public string lastName { get; set; }
    }

अब विधि को कॉल करने के लिए:

Person x = SomeMethod("John");

फिर आप अपने टेक्स्टबॉक्स को व्यक्ति वस्तु से आने वाले मानों से भर सकते हैं जैसे:

txtLastName.Text = x.LastName;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एएसपीनेट में एक एसक्यूएल सर्वर डेटाबेस से एक छवि प्रदर्शित करने का सबसे अच्छा तरीका क्या है?

  2. खिड़की वाले कुल कार्यों के लिए लॉजिकल रीड इतने ऊंचे क्यों हैं?

  3. एसक्यूएल, परिणामों को कैसे संयोजित करें?

  4. SQL में एक शीर्ष स्तरीय अभिभावक ढूँढना

  5. SQL सर्वर का उपयोग करके varchar कॉलम में गैर-ASCII वर्ण खोजें