比较c#中数据表中的值

时间:2012-04-03 09:06:57

标签: c# datatable

我已经在两个数据中加载了两个Excel文件,现在我必须检查DataTable1的第一列的特定值是否存在于DataTable 2的特定cloumn中。我在富文本框中只有一个输出是错误的。我该怎么办

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 :(得分:0)

每次都将结果设置为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);

答案 1 :(得分:0)

尝试替换代码的这一部分

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

有了这个

if (aa!=old)
{
    richTextBox1.Text = richTextBox1.Text + aa + "\n\r";
}