दिलचस्प पोस्ट
यह साधारण फेरबदल एल्गोरिथ्म पक्षपातपूर्ण परिणाम क्यों पैदा करता है? एक सरल कारण क्या है? Emacs का प्रयोग करके पाठ फ़ाइलों में लगातार ढूंढ और प्रतिस्थापित करने के लिए पहले से ही खुले नहीं हैं var फ़ंक्शननाम = समारोह () {} बनाम फ़ंक्शन functionName () {} PHP से जावास्क्रिप्ट के चर और डेटा कैसे पास करें? कैलेंडर आवर्ती / दोहराए जाने वाले कार्यक्रम – सर्वश्रेष्ठ संग्रहण विधि क्यों पायथन स्थिर चर नहीं है? क्या मुझे जेएस पुस्तकालयों के लिए Google API के बादल से लिंक करना चाहिए? सी ++ चेतावनी: स्ट्रिंग निरंतर से 'चार *' के लिए पदावनत रूपांतरण जावास्क्रिप्ट का उपयोग कर ब्राउज़र में मैं वर्ड डॉक्यूमेंट (.doc, .docx) कैसे प्रस्तुत करूं? NullPointer जावा टर्नरी ऑपरेटर के ऑटो बॉक्सिंग-व्यवहार के माध्यम से अपवाद मर्जेशोर्ट पायथन प्रोटोटाइप का उपयोग करने के लिए जावास्क्रिप्ट नया एंड्रॉइड 4.0 आइस क्रीम सैंडविच एपीआई का उपयोग करके एंड्रॉइड कैलेंडर इवेंट कैसे पढ़ और संपादित करें? स्टार्टअप पर टॉमकेट कॉन्फ़िगरेशन में मैं सिस्टम गुणों को कैसे निर्दिष्ट कर सकता हूं? सिस्टम से बाहर मेमोरी अपवाद। ड्रॉइंग। इमेज। फ्रॉमफाइल ()

मैं एक बाइट डालें कैसे एक एसक्यूएल सर्वर VARBINARY कॉलम में

मैं एक बाइट सरणी नीचे हाइलाइट किया है, मैं उसे एक एसक्यूएल सर्वर डेटाबेस Varbinary कॉलम में कैसे सम्मिलित करूँ?

byte[] arraytoinsert = new byte[10]{0,1,2,3,4,5,6,7,8,9}; string sql = string.format ( "INSERT INTO mssqltable (varbinarycolumn) VALUES ({0});",WHATTODOHERE ); 

अग्रिम धन्यवाद लोग!

वेब के समाधान से एकत्रित समाधान "मैं एक बाइट डालें कैसे एक एसक्यूएल सर्वर VARBINARY कॉलम में"

मेरा समाधान एक पैरामीटरयुक्त क्वेरी का उपयोग करना होगा, क्योंकि कनेक्टिविटी ऑब्जेक्ट डेटा को सही ढंग से स्वरूपित करने का ध्यान रखते हैं (सही डेटा-प्रकार को सुनिश्चित करने और "खतरनाक" वर्णों को जहां से लागू हो, से बचने सहित):

 // Assuming "conn" is an open SqlConnection using(SqlCommand cmd = new SqlCommand("INSERT INTO mssqltable(varbinarycolumn) VALUES (@binaryValue)", conn)) { // Replace 8000, below, with the correct size of the field cmd.Parameters.Add("@binaryValue", SqlDbType.VarBinary, 8000).Value = arraytoinsert; cmd.ExecuteNonQuery(); } 

संपादित करें: जॉन सॉंडर्स द्वारा सुझाव दिया गया है कि "उपयोग" कथन को रैपिंग के साथ जोड़ा गया, ताकि इसे पूर्ण होने के बाद SqlCommand का सही ढंग से निपटान किया जा सके

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

 "0x" + BitConverter.ToString(arraytoinsert).Replace("-", "") 

यद्यपि आप निश्चित रूप से स्ट्रिंग संयोजन के बजाय एक पैरामीटरयुक्त क्वेरी का उपयोग करना चाहिए …

कोई समस्या नहीं है यदि आपके द्वारा इस परिदृश्य में उपयोग किए जाने वाले सभी एरेज़ आपके उदाहरण की तरह छोटी हैं।

यदि आप इसका उपयोग बड़े VARBINARY लिए करेंगे (उदाहरण के तौर पर बड़ी बाइनरी फ़ाइलों को कई एमबीएस या जीबीएस आकार को किसी VARBINARY में VARBINARY ) तो आप शायद इस तरह के बड़े VARBINARY के पठन / लिखने के लिए एसक्यूएल सर्वर में विशिष्ट समर्थन का उपयोग करते हुए बेहतर होगा। READTEXT और UPDATETEXT तरह, या SQL सर्वर SUBSTRING वर्तमान संस्करण में।

अधिक जानकारी और उदाहरणों के लिए एनईटी मैगज़ीन ( "ब्लॉब + स्ट्रीम = ब्लॉबस्ट्रीम" , डच में पूर्ण स्रोत कोड के साथ), या अंग्रेजी अनुवाद और पीटर डी जोंगे द्वारा कोडप्रोजेक्ट पर इसका सामान्यीकरण, मेरे 2006 लेख में देखें। इन दोनों को मेरे वेबलॉग से लिंक किया गया है ।

https://drive.google.com/open?id=0B0-Ll2y6vo_sQ29hYndnbGZVZms सभी चरणों के लिए इस छवि लिंक की जांच करें

STEP1: मैंने टेबल में टाइप वर्बलरी के एक क्षेत्र का निर्माण किया

STEP2: मैंने एक संग्रहीत प्रक्रिया को sql_variant प्रकार के पैरामीटर को स्वीकार करने के लिए बनाया है

STEP3: मेरे सामने के अंत asp.net पृष्ठ में, मैंने ऑब्जेक्ट प्रकार के एक एसक्यूएल डेटा स्रोत पैरामीटर बनाया है

  <tr> <td> UPLOAD DOCUMENT</td> <td> <asp:FileUpload ID="FileUpload1" runat="server" /> <asp:Button ID="btnUpload" runat="server" Text="Upload" /> <asp:SqlDataSource ID="sqldsFileUploadConn" runat="server" ConnectionString="<%$ ConnectionStrings: %>" InsertCommand="ph_SaveDocument" InsertCommandType="StoredProcedure"> <InsertParameters> <asp:Parameter Name="DocBinaryForm" Type="Object" /> </InsertParameters> </asp:SqlDataSource> </td> <td> &nbsp;</td> </tr> 

चरण 4: मेरे कोड के पीछे, मैं FileBytes को FileUpload नियंत्रण से इस संग्रहीत प्रक्रिया कॉल के माध्यम से एक एसक्यूएल डेटा स्रोत नियंत्रण का उपयोग कर अपलोड करने का प्रयास करता हूं

  Dim filebytes As Object filebytes = FileUpload1.FileBytes() sqldsFileUploadConn.InsertParameters("DocBinaryForm").DefaultValue = filebytes.ToString Dim uploadstatus As Int16 = sqldsFileUploadConn.Insert() ' ... code continues ... ' 

आप ऐसा कुछ कर सकते हैं, बहुत सरल और कुशल समाधान: मैं वास्तव में मूल प्लेसहोल्डर के बजाय एक पैरामीटर का उपयोग कर रहा था, एक एसक्लपीरामीटर ऑब्जेक्ट बनाया और अन्य मौजूदा निष्पादन विधि का उपयोग किया। आपके परिदृश्य में उदाहरण के लिए:

 string sql = "INSERT INTO mssqltable (varbinarycolumn) VALUES (@img)"; SqlParameter param = new SqlParameter("img", arraytoinsert); //where img is your parameter name in the query ExecuteStoreCommand(sql, param); 

यह एक आकर्षण की तरह काम करना चाहिए, बशर्ते आपने एक खुले एसक्यूएल कनेक्शन स्थापित किया हो।