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

क्या मैं SQL सर्वर (C#) में एक पंक्ति को INSERT या अद्यतन करने के लिए स्ट्रीम का उपयोग कर सकता हूं?

आपको SqlBytes . का एक उदाहरण पास करने में सक्षम होना चाहिए SqlCommand . के पैरामीटर के रूप में जहां कहीं भी varbinary ज़रूरी है। वही SqlBytes क्लास में एक कंस्ट्रक्टर ओवरलोड होता है जो एक Stream को लपेटता है . तो बस एक SqlBytes बनाएं स्ट्रीम से उदाहरण, फिर उसे पैरामीटर मान के रूप में पास करें।

दूसरे शब्दों में, इसके बजाय इसे आपके संशोधित कोड में फ़िट करना:

MemoryStream _MemoryStream = new System.IO.MemoryStream();
_Image.Save(_MemoryStream, _ImageFormat);
SqlParameter _SqlParameter = new 
    SqlParameter("@" + _ImageFieldName, SqlDbType.Image);
_SqlParameter.Value = _MemoryStream.ToArray();
_SqlCommand.Parameters.Add(_SqlParameter);

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

MemoryStream _MemoryStream = new System.IO.MemoryStream();
_Image.Save(_MemoryStream, _ImageFormat);
_MemoryStream.Position = 0;  // I *think* you need this
SqlParameter _SqlParameter = new 
    SqlParameter("@" + _ImageFieldName, SqlDbType.VarBinary);
_SqlParameter.Value = new SqlBytes(_MemoryStream);
_SqlCommand.Parameters.Add(_SqlParameter);

बेशक, MemoryStream . का निपटान करना न भूलें और ये सभी अन्य IDisposable कमांड निष्पादित होने के बाद के उदाहरण।

संपादित करें:ठीक है, मैंने अभी आपके संपादन का निचला भाग देखा है, जिसका अर्थ यह है कि डेटा बहुत बड़ा है और आप इसे स्मृति में समाप्त नहीं करना चाहते हैं, और यह वास्तव में उस समस्या का समाधान नहीं करेगा। बात यह है कि, यदि मान इतना बड़ा है, तो इसे varbinary में संग्रहीत करना एक बुरा विचार है पहले स्थान पर कॉलम।

यदि आप SQL Server 2008 का उपयोग कर रहे हैं, तो आप इसके बजाय FILESTREAM का उपयोग (और चाहिए!) कर सकते हैं। यह वास्तव में करता है SqlFileStream वर्ग के माध्यम से ADO.NET में "सच" स्ट्रीमिंग का समर्थन करें।

यदि आप FILESTREAM का उपयोग नहीं कर सकते हैं स्टोरेज, तो मुझे डर है कि आपको किसी समय मेमोरी में होने वाले डेटा से निपटना होगा, यह काफी हद तक ADO.NET कैसे काम करता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कैसे एसक्यूएल सर्वर में group_concat के साथ एक क्वेरी बनाने के लिए?

  2. SQL सर्वर में संग्रहीत कार्यविधि के लिए स्तंभ जानकारी लौटाएँ:sp_sproc_columns

  3. SQL सर्वर में, मैं हर जगह एक कॉलम का संदर्भ कैसे पा सकता हूं?

  4. स्पॉटलाइट क्लाउड अलार्म कस्टमाइज़ करें

  5. आप SQL सर्वर सत्र में ऑटोोकॉमिट कैसे सेट करते हैं?