我们有很多测试,测试数据存储在 Excel 中。我创建了测试方法,其中 Excel 工作表连接DataSource
为TestContext
.
为方便起见,我想用测试结果更新 Excel 工作表,以便轻松查看数据(或系统)的错误位置。
我尝试过的事情:
直接写到TestContext.DataRow
:
TestContext.DataRow.BeginEdit();
TestContext.DataRow["Result"] = "change";
TestContext.DataRow.EndEdit();
TestContext.DataRow.AcceptChanges();
结果:通过,但我的 Excel 文件中没有更新任何行。
通过以下方式更新它DataConnection
:
string currentRow = TestContext.DataRow["RowId"].ToString();
System.Data.Common.DbCommand cmd = TestContext.DataConnection.CreateCommand();
cmd.CommandText = String.Format("UPDATE {0} SET {1} = pass WHERE {2} = {3}", sheetName, columnName, "RowId", currentRow);
cmd.CommandType = System.Data.CommandType.Text;
cmd.ExecuteReader();
结果:System.Data.OleDb.OleDbException: Syntax error in UPDATE statement.
并通过更改DataRow
以下来更新它TestContext
:
string currentRow = TestContext.DataRow["RowId"].ToString();
OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.UpdateCommand = new OleDbCommand(String.Format("UPDATE {0} SET {1} = pass WHERE {2} = {3}", sheetName, columnName, "RowId", currentRow));
adapter.UpdateCommand.Connection = (OleDbConnection)TestContext.DataConnection;
adapter.Update(new System.Data.DataRow[] { TestContext.DataRow });
结果:也通过了,但我的 Excel 文件中也没有更新任何行。
以前有人成功过吗?还是有人暗示我可能错了?