Сравнение значений в таблице данных в c # - PullRequest
0 голосов
/ 03 апреля 2012

Я загрузил два файла Excel в два набора данных. Теперь я должен проверить, что конкретное значение первого столбца DataTable1 существует в конкретном пакете DataTable 2 или нет.У меня есть только один вывод в расширенном текстовом поле, что неправильно.Что мне делать

string connectionStringold = Application.StartupPath + "\ Language-Resources-3.0" + ".xls";

        string connstrold = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + connectionStringold + ";Extended Properties=Excel 8.0";
        OleDbConnection connold = new OleDbConnection(connstrold);
        string strSQLold = "SELECT * FROM [Resources$]";
        OleDbCommand cmdold = new OleDbCommand(strSQLold, connold);
        OleDbDataAdapter daold = new OleDbDataAdapter(cmdold);

        DataTable dtold = new DataTable();
        daold.Fill(dtold);
        // dataGridView1.DataSource = dtold;

        string connectionString = Application.StartupPath + "\\x_Lang_Res" + ".xls";
        string connstr = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + connectionString + ";Extended Properties=Excel 8.0";
        OleDbConnection conn = new OleDbConnection(connstr);
        string strSQL = "SELECT * FROM [Chinese$]";
        OleDbCommand cmd = new OleDbCommand(strSQL, conn);
        OleDbDataAdapter da = new OleDbDataAdapter(cmd);

        DataTable dt = new DataTable();
        da.Fill(dt);

        // dataGridView1.DataSource = dt;
        foreach (DataRow row in dt.Rows)
        {
            string aa = row[1].ToString();
            foreach (DataRow rowold in dtold.Rows)
            {
                string old = rowold[3].ToString();
                if (!rowold[3].ToString().Contains(aa))
                {
                    richTextBox1.Text = aa + "\n\r";
                }
            }
        }

Ответы [ 2 ]

0 голосов
/ 03 апреля 2012

Попробуйте заменить эту часть кода

if (!rowold[3].ToString().Contains(aa))
{
    richTextBox1.Text = aa + "\n\r";
}

С этим

if (aa!=old)
{
    richTextBox1.Text = richTextBox1.Text + aa + "\n\r";
}
0 голосов
/ 03 апреля 2012

Вы устанавливаете результат для свойства RTB.Text каждый раз.

if (!rowold[3].ToString().Contains(aa))
{
    richTextBox1.Text = aa + "\n\r";
}

Вам нужно использовать + =, чтобы добавить его.

 if (!rowold[3].ToString().Contains(aa))
    {
        richTextBox1.Text += aa + "\n\r";
    }

или даже лучше использовать

RTB.AppendText (string.Format (".....", a, b);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...