Beispiel #1
0
        private static NameValuePair ParseInternal(
            IDictionary <string, string> parsetable,
            string connectionString,
            IList <string> validKeywords)
        {
            StringBuilder buffer         = new StringBuilder();
            NameValuePair nameValuePair1 = (NameValuePair)null;
            NameValuePair nameValuePair2 = (NameValuePair)null;
            int           num            = 0;
            int           length         = connectionString.Length;

            while (num < length)
            {
                int    currentPosition = num;
                string keyname;
                string keyvalue;
                num = DbConnectionOptions.GetKeyValuePair(connectionString, currentPosition, buffer, out keyname, out keyvalue);
                if (!string.IsNullOrEmpty(keyname))
                {
                    if (!validKeywords.Contains(keyname))
                    {
                        throw new ArgumentException(Strings.ADP_KeywordNotSupported((object)keyname));
                    }
                    parsetable[keyname] = keyvalue;
                    if (nameValuePair1 != null)
                    {
                        nameValuePair1 = nameValuePair1.Next = new NameValuePair();
                    }
                    else
                    {
                        nameValuePair2 = nameValuePair1 = new NameValuePair();
                    }
                }
                else
                {
                    break;
                }
            }
            return(nameValuePair2);
        }