सी #: टाइप स्ट्रिंग की int को कनवर्ट करते समय इनपुट स्ट्रिंग सही स्वरूप त्रुटि में नहीं है

Winforms, सी # और sqlite का उपयोग कर

मैं एक सूची को बदलने की कोशिश कर रहा था जो निम्न प्रकार का उपयोग करने के लिए प्रकार की स्ट्रिंग है:

 List ints = list2.ConvertAll(int.Parse);

नोट: मैंने ऊपर दिए गए कोड को लिखने से पहले विधि के बाहर सूची घोषित की है:

 List ints = new List();

मैं इस सूची का उपयोग स्क्लाइट में स्तंभों को पॉप्युलेट करने के लिए इस तरह करना चाहता हूं:

 sqlite_cmd.CommandText = "CREATE TABLE IF NOT EXISTS 't2' (YYMM int32, MinDate int32, MaxDate int32, TotalTrans int32, DebitTrans int32, AMOUNTINDOCUMENTCURREN int32 );";

        sqlite_cmd.ExecuteNonQuery();

        sqlite_cmd.CommandText = " DELETE FROM t2";
        sqlite_cmd.ExecuteNonQuery();

        sqlite_cmd.CommandText = "INSERT INTO t2 (YYMM, MinDate, MaxDate, TotalTrans, DebitTrans, AMOUNTINDOCUMENTCURREN ) VALUES (@b1, @b2, @b3, @b4, @b5, @b6)";
        sqlite_cmd.Parameters.AddWithValue("@b1", 6); //dummy initial values 
        sqlite_cmd.Parameters.AddWithValue("@b2", 878);
        sqlite_cmd.Parameters.AddWithValue("@b3", 56);
        sqlite_cmd.Parameters.AddWithValue("@b4", 6);
        sqlite_cmd.Parameters.AddWithValue("@b5", 546);
        sqlite_cmd.Parameters.AddWithValue("@b6", 565);

        for (int i = 0; i < NumList2Values; i += 6)//Filling SQlite table rows and columns with values from list2
        {
            sqlite_cmd.Parameters.AddWithValue("@b1", ints[i]);
            sqlite_cmd.Parameters.AddWithValue("@b2", ints[i + 1]);
            sqlite_cmd.Parameters.AddWithValue("@b3", ints[i + 2]);
            sqlite_cmd.Parameters.AddWithValue("@b4", ints[i + 3]);
            sqlite_cmd.Parameters.AddWithValue("@b5", ints[i + 4]);
            sqlite_cmd.Parameters.AddWithValue("@b6", ints[i + 5]);
            sqlite_cmd.ExecuteNonQuery();
        }

समस्या यह है कि प्रोग्राम को संकलित करते समय मुझे यह त्रुटि मिलती है:

enter image description here

0

3 उत्तर

एक तरीका आपके कोड को फिर से डिजाइन करना होगा ताकि आपके पास पूर्णांक मानों की सूची हो।

उदाहरण के लिए:

private void TestRoutine(List section2, int[] pos2,
  int[] len2, string[] val2)
{
  var list2 = new List();
  foreach (var line in section2)
  {
    for (int k = 0; k < 6; k++)
    {
      int numValue = 0;
      val2[k] = line.Substring(pos2[k], len2[k]);
      int.TryParse(val2[k], out numValue);
      list2.Add(numValue);
    }
  }
}

आप इसे जोड़ने से पहले TryParse सफल होने और सुनिश्चित करने के लिए कुछ कोड भी जोड़ सकते हैं।

0
जोड़ा
यह एक संपत्ति नहीं हो सकता है, लेकिन स्थानीय चर होने के साथ कुछ भी गलत नहीं होना चाहिए। लूप के अंदर numValue को अंदर ले जाने का प्रयास करें और इसे अद्यतन उदाहरण में शुरू करें।
जोड़ा लेखक jp2code, स्रोत
मुझे एक त्रुटि मिल रही है कि स्थानीय परिवर्तनीय numValue सूची 2 में पारित नहीं किया जा सकता है। मैंने फिर एक संपत्ति को numValue बनाया और फिर मुझे एक और त्रुटि मिली और कहा कि मैं एक संपत्ति नहीं डाल सकता। ट्राईपर्स विधि। मुझे लगता है कि मुझे इसे वैश्विक बनाना होगा?
जोड़ा लेखक Newuser, स्रोत

आप ConvertAll का उपयोग करने में सक्षम नहीं होंगे। लेकिन आप यह कर सकते हैं:

list2.Select(s => int.Parse(s)).ToList();

and that will give you a List.

0
जोड़ा
इस दृष्टिकोण का प्रयास किया लेकिन अभी भी एक ही त्रुटि हो रही है
जोड़ा लेखक Newuser, स्रोत

यदि आप ConvertAll का उपयोग करना चाहते हैं, तो यहां आप इसका उपयोग कैसे करेंगे।

List ints = list2.ConvertAll(x => int.Parse(x));
0
जोड़ा