загрузка combobox с именами строк из двух таблиц с отношением (родительский / дочерний) C # [дубликат]

Вот простое решение, в котором используется только стандартная библиотека регулярных выражений

#include <regex>
#include <string>
#include <vector>

std::vector<string> Tokenize( const string str, const std::regex regex )
{
    using namespace std;

    std::vector<string> result;

    sregex_token_iterator it( str.begin(), str.end(), regex, -1 );
    sregex_token_iterator reg_end;

    for ( ; it != reg_end; ++it ) {
        if ( !it->str().empty() ) //token could be empty:check
            result.emplace_back( it->str() );
    }

    return result;
}

Аргумент regex позволяет проверять несколько аргументов (пробелы, запятые и т. д.).

Обычно я только check для разделения на пробелы и запятые, поэтому у меня также есть эта функция по умолчанию:

std::vector<string> TokenizeDefault( const string str )
{
    using namespace std;

    regex re( "[\\s,]+" );

    return Tokenize( str, re );
}

"[\\s,]+" проверяет пробелы (\\s) и запятые (,).

Обратите внимание, что если вы хотите разбить wstring вместо string,

  • изменить все std::regex на std::wregex
  • , изменить все sregex_token_iterator to wsregex_token_iterator

Обратите внимание, что вы также можете взять строковый аргумент по ссылке, в зависимости от вашего компилятора.

1
задан ThElitEyeS 3 August 2012 в 21:44
поделиться

5 ответов

Сообщение об ошибке вводит в заблуждение. Вы должны иметь MultipleActiveResultSets=True в строке соединения, чтобы иметь возможность отправлять две отдельные команды с двумя разными считывателями.

8
ответ дан Mithrandir 22 August 2018 в 23:07
поделиться

Объявить эти DataReader в блоке public partial class Form1 : Form Пример:

namespace GoodFood_1_
{
    public partial class Autentificare_client : Form
   {
        SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\edi_b\Documents\visual studio 2013\Projects\GoodFood(1)\GoodFood(1)\GOOD_FOOD.mdf;
        Integrated Security=True;MultipleActiveResultSets=True");
        SqlConnection con2 = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=c:\users\edi_b\documents\visual studio 2013\Projects\GoodFood(1)\GoodFood(1)\GOOD_FOOD.mdf;
        Integrated Security=True;MultipleActiveResultSets=True");

        SqlDataReader dr;
        SqlDataReader cc;

        public Autentificare_client()
        {
            InitializeComponent();
        }
0
ответ дан Kurt Van den Branden 22 August 2018 в 23:07
поделиться

Это возможно, когда вы используете что-то, называемое множественными наборами активных результатов, или MARS. Проверьте эту полезную статью , которая описывает все возможные ловушки.

5
ответ дан Nikola Anusev 22 August 2018 в 23:07
поделиться

В вашем соединении вам нужно включить несколько активных наборов записей (MARS).

http://msdn.microsoft.com/en-us/library/h32h3abf%28v=vs 0,80% 29.aspx

3
ответ дан Serg Rogovtsev 22 August 2018 в 23:07
поделиться

1. Просто добавьте MultipleActiveResultSets = True в строку подключения:

private string _ConnectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=yourdbpath\Database.mdf;Integrated Security=True;MultipleActiveResultSets=True;Connect Timeout=30";
0
ответ дан Wajid khan 22 August 2018 в 23:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: