दिलचस्प पोस्ट
का उपयोग करना: पहले और: एचटीएमएल डालने के लिए सीएसएस चयनकर्ता के बाद सी # विंडोज़ अनुप्रयोग का उपयोग करके बाइट एमएस वर्ड में एक छवि कैसे लिखनी है जेएस ऑनक्लिक ईवेंट हैंडलर पर प्रतिक्रिया दें अतुल्यकालिक बनाम गैर-अवरोधन संचिका संचिका के लिए एंड्रॉइड ओपन बाहरी स्टोरेज डायरेक्टरी (एसडीकार्ड) फोरट्रान में दो-आयामी arrays को कैसे प्रारंभ करें हेडर के साथ सी # में सीएसवी फ़ाइलों को पार्स करना क्या किसी को ड्रैग एंड ड्रॉप, पुन: क्रम-योग्य सूची के निम्न स्तर (कोई फ्रेमवर्क) का पता नहीं है? 2012 के लिए अनुशंसित jQuery टेम्पलेट्स? बाउंड वाइल्डकार्ड और टाइप मापदंडों के बीच अंतर क्या है? एक गतिविधि से एक अंश को एक अंश में पास करना कैसे regex के साथ "उलटा मैच" करने के लिए? NumPy सरणी प्रारंभ (समान मानों से भरें) उपयोगकर्ता इनपुट स्ट्रिंग को नियमित अभिव्यक्ति में रूपांतरित करना निर्दिष्ट तारों को छोड़कर सब कुछ मैच करें

मैं एक बाइट डालें कैसे एक एसक्यूएल सर्वर 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 ); 

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

Solutions Collecting From Web of "मैं एक बाइट डालें कैसे एक एसक्यूएल सर्वर 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); 

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