दिलचस्प पोस्ट
सामान्य URL पर ब्लॉब यूआरएल कन्वर्ट एचटीएमएल टैग के आईडी में विशेष वर्ण मैं SQL Server डेटाबेस में एक auto_increment प्राथमिक कुंजी कैसे जोड़ूं? जब ब्राउज़र विंडो / टैब बंद हो जाता है तो एक स्थानीय स्टॉरेज आइटम को कैसे हटाएं? विम में एक कमांड को अलग करना मैं कैसे अजगर में एक यूआरएल को सामान्य कर सकता हूँ किसी सेवा द्वारा उपयोग की जाने वाली एक नेटवर्क ड्राइव को मैप करें रूबी बंडल प्रतीक नहीं मिला: _SSLv2_client_method (लोड ईर्रर) रीडर और इनटस्टस्ट्रीम के बीच अंतर क्या है? Sp_reset_connection क्या करता है? कपड़े पासवर्ड क्यों हमेशा बंद डेटाबेस कनेक्शन? निर्धारित हैडर के लिए समायोजित करने के लिए एक HTML एंकर को ऑफसेट करना JERSEY का प्रयोग करके इनपुट और आउटपुट बाइनरी स्ट्रीम? विंडोज फॉर्म में एक लेबल के लिए वर्ड रैप

मैं "" "सिकलाइट में समस्या और सी # के आसपास कैसे प्राप्त करूं?

मैं माइक्रोसॉफ्ट विज़ुअल सी # 2008 एक्सप्रेस में SQLite के साथ काम कर रहा हूं।

मैं समझता हूं कि मेरे पाठ में एक apostrope (') एक क्वेरी में समस्याएं हैं मेरी समस्या यह है कि मैंने सोचा कि मैं इसे \ 'के साथ बदल सकता हूँ यह काम नहीं कर रहा है … यहाँ मेरे कोड का एक पैराडाईज नीचे का उदाहरण है:

string myString = "I can't believe it!"; cmd.CommandText = "Insert into myTable (myid,mytext) values (1,'" + myString.Replace("'","\\'") + "');"; 

मुझे जो त्रुटि मिलती है वह है: SQLite त्रुटि: "टी" के पास: सिंटैक्स त्रुटि

मैंने कुछ अन्य प्रतिस्थापन की कोशिश की … जैसे अन्य स्लैश और मैंने अपनी स्ट्रिंग को लिखा और मेरी स्ट्रिंग का एक बदली संस्करण कंसोल के लिए बाहर आ गया, यह सुनिश्चित करने के लिए कि यह सही बाहर आ रहा था।

क्या बेवकूफ त्रुटि मैं यहाँ बना रहा हूँ?

धन्यवाद!

-Adeena

वेब के समाधान से एकत्रित समाधान "मैं "" "सिकलाइट में समस्या और सी # के आसपास कैसे प्राप्त करूं?"

रॉबर्ट द्वारा प्रस्तुत समाधान काम करेगा (यानी ' द्वारा '' जगह '' )।

वैकल्पिक रूप से आप निम्न में पैरामीटर का उपयोग कर सकते हैं:

 DbCommand cmd = new DbCommand(); DbParameter param = cmd.CreateParameter(); // ... // more code // ... cmd.CommandText = "Insert table (field) values (@param)"; param.ParameterName = "param" param.DbType = DbType.String; param.Value = @"This is a sample value with a single quote like this: '"; cmd.Parameters.Add(param); cmd.ExecuteNonQuery(); 

मापदंडों का उपयोग करना एसक्यूएल इंजेक्शन से बचाता है, और 'समस्याएं क्यू दूर करता है

यह भी बहुत तेज है क्योंकि जब आप मापदंडों का उपयोग करते हैं तो SQLite बयान की निष्पादन योजना का पुन: उपयोग कर सकता है। जब आप मापदंडों का उपयोग नहीं करते हैं तो ऐसा नहीं हो सकता। इस उदाहरण में पैरामीटर का उपयोग करते हुए थोक निविष्टियां लगभग 3 गुना तेज होती हैं।

 private void TestInsertPerformance() { const int limit = 100000; using (SQLiteConnection conn = new SQLiteConnection(@"Data Source=c:\testperf.db")) { conn.Open(); using (SQLiteCommand comm = new SQLiteCommand()) { comm.Connection = conn; comm.CommandText = " create table test (n integer) "; comm.ExecuteNonQuery(); Stopwatch s = new Stopwatch(); s.Start(); using (SQLiteTransaction tran = conn.BeginTransaction()) { for (int i = 0; i < limit; i++) { comm.CommandText = "insert into test values (" + i.ToString() + ")"; comm.ExecuteNonQuery(); } tran.Commit(); } s.Stop(); MessageBox.Show("time without parm " + s.ElapsedMilliseconds.ToString()); SQLiteParameter parm = comm.CreateParameter(); comm.CommandText = "insert into test values (?)"; comm.Parameters.Add(parm); s.Reset(); s.Start(); using (SQLiteTransaction tran = conn.BeginTransaction()) { for (int i = 0; i < limit; i++) { parm.Value = i; comm.ExecuteNonQuery(); } tran.Commit(); } s.Stop(); MessageBox.Show("time with parm " + s.ElapsedMilliseconds.ToString()); } conn.Close(); } } 

एसक्यूएलइट ओरेकल के समान व्यवहार करता है जब यह पैरामीटरयुक्त एसक्यूएल स्टेटमेंट का उपयोग करने के महत्व की बात आती है।