दिलचस्प पोस्ट
मोंगो डीबी: एक से कई संग्रहों से डेटा एकत्र करें..कैसे? alloc और init वे वास्तव में क्या करते हैं गिट में सिर्फ वर्तमान शाखा दिखाएं किसी फ़ंक्शन से स्थानीय चर के संदर्भ को लौटाना स्प्रिंग, जैक्सन और कस्टमाइजेशन (जैसे कस्टम डिज़ेरिलाइज़र) मैं कैसे LINQ लिखता हूं। स्किप (1000)। शुद्ध एसक्यूएल में (100) ले लो? ट्यूपल को हल करने के लिए क्या आवश्यकता थी? रैखिक प्रतिगमन "एनए" अनुमान सिर्फ पिछले गुणांक के लिए जावास्क्रिप्ट सरणी को अल्पविराम से विभाजित सूची में बदलने का आसान तरीका? PHP एईएस एन्क्रिप्ट / डिक्रिप्ट एंड्रॉइड: फिक्स्ड आस्पेक्ट अनुपात के साथ कैमरे के साथ ले जाने के बाद एक छवि क्रॉप करें मैं कैसे स्क्लाईट से एक ब्लॉ को स्टोर और पुनः प्राप्त कर सकता हूं परमाणु x86 निर्देशों के लिए संरेखण आवश्यकताओं क्या यह संभव है कि एंड्रॉइड रेखीयरलेआउट की चौड़ाई में बटन समान रूप से वितरित करें जब एक MySQL तालिका अंतिम रूप से अद्यतन की गई थी, तो मैं कैसे बता सकता हूँ?

SQL सर्वर से वापसी मान सी # का उपयोग कर डालें

दृश्य स्टूडियो में सी # का उपयोग करते हुए, मैं इस तरह एक तालिका में एक पंक्ति डाल रहा हूँ:

INSERT INTO foo (column_name) VALUES ('bar') 

मैं ऐसा कुछ करना चाहता हूं, लेकिन मुझे सही सिंटैक्स नहीं पता है:

 INSERT INTO foo (column_name) VALUES ('bar') RETURNING foo_id 

यह नए डाला पंक्ति से foo_id कॉलम वापस करेगा।

इसके अलावा, यहां तक ​​कि अगर मुझे इसके लिए सही सिंटैक्स मिल जाए, तो मुझे एक और समस्या है: मेरे निपटान में मेरे पास SqlDataReader और SqlDataAdapter जहां तक ​​मुझे पता है, पहले डेटा पढ़ने के लिए है, दूसरा डेटा जोड़ तोड़ना है। रिटर्न स्टेटमेंट के साथ एक पंक्ति डालने पर, मैं डेटा जोड़कर और पढ़ रहा हूं, इसलिए मुझे यकीन नहीं है कि क्या उपयोग करना है। हो सकता है कि इस बात के लिए मुझे कुछ अलग तरह से इस्तेमाल करना चाहिए?

Solutions Collecting From Web of "SQL सर्वर से वापसी मान सी # का उपयोग कर डालें"

SCOPE_IDENTITY उसी दायरे में एक पहचान कॉलम में डाली गई अंतिम पहचान मान देता है। एक गुंजाइश एक मॉड्यूल है: एक संग्रहीत कार्यविधि, ट्रिगर, फ़ंक्शन या बैच इसलिए, दो बयान एक ही दायरे में हैं यदि वे एक ही संग्रहीत कार्यविधि, फ़ंक्शन या बैच में हैं।

आप सम्मिलित कमांड को निष्पादित करने के लिए SqlCommand.ExecuteScalar का उपयोग कर सकते हैं और एक क्वेरी में नया आईडी पुनः प्राप्त कर सकते हैं।

 using (var con = new SqlConnection(ConnectionString)) { int newID; var cmd = "INSERT INTO foo (column_name)VALUES (@Value);SELECT CAST(scope_identity() AS int)"; using (var insertCommand = new SqlCommand(cmd, con)) { insertCommand.Parameters.AddWithValue("@Value", "bar"); con.Open(); newID = (int)insertCommand.ExecuteScalar(); } } 

इसे इस्तेमाल करे:

 INSERT INTO foo (column_name) OUTPUT INSERTED.column_name,column_name,... VALUES ('bar') 

आउटपुट परिणाम सेट (अन्य बातों के साथ) लौटा सकता है, देखें: आउटपुट क्लॉज (ट्रांसएक्ट-एसक्यूएल) इसके अलावा, यदि आप एकाधिक मान (INSERT SELECT) को सम्मिलित करते हैं, तो यह विधि एक पंक्ति प्रति डाला पंक्ति वापस करती है, जहां अन्य विधियां केवल अंतिम पंक्ति पर जानकारी वापस कर देंगी

काम कर रहे उदाहरण:

 declare @YourTable table (YourID int identity(1,1), YourCol1 varchar(5)) INSERT INTO @YourTable (YourCol1) OUTPUT INSERTED.YourID VALUES ('Bar') 

उत्पादन:

 YourID ----------- 1 (1 row(s) affected) 

मुझे लगता है कि आप इसके लिए @@ पहचान का उपयोग कर सकते हैं, लेकिन मुझे लगता है कि इसके आस-पास कुछ विशेष नियम / प्रतिबंध हैं?

 using (var con = new SqlConnection("connection string")) { con.Open(); string query = "INSERT INTO table (column) VALUES (@value)"; var command = new SqlCommand(query, con); command.Parameters.Add("@value", value); command.ExecuteNonQuery(); command.Parameters.Clear(); command.CommandText = "SELECT @@IDENTITY"; int identity = Convert.ToInt32(command.ExecuteScalar()); }