我已经在两个数据中加载了两个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";
}
}
}
答案 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";
}