目前,我正在从与"Key"值匹配的特定工作表中获取数据-但现在我想访问与"Key"值匹配的所有工作表中的数据
在我的excel中,我有两张表:LogInUserData和Sheet2
现在处于LogInUserData密钥电子邮件密码记住我LogInSuccessfully a@a.a a 0
在表2中
关键KlarnaLogInSuccessfully演示
现在,我想从两张表中访问Key"Loginsuccessfully"的值-我有代码,但它只从第一张表中获取,而不是从其他表中获取-那么我如何从excel 访问复杂的数据表
我正在使用ODBC连接
public static string TestDataFileConnection(string fileName)
{
string Filename = "C:\Users\PalakS\source\repos\Daily update\UnitTestProject2 - 10-04\UnitTestProject2\ExcelData\LogInPageData.xlsx";
string connectionString = string.Format("Dsn=Excel Files;READONLY=false;DBQ={0};", Filename);
System.Data.Odbc.OdbcCommand odbcCmd = new System.Data.Odbc.OdbcCommand("", new System.Data.Odbc.OdbcConnection(connectionString));
return connectionString;
}
public static T GetTestData<T>(string fileName, string sheet, string keyName)
{
using (var connection = new
OdbcConnection(TestDataFileConnection(fileName)))
{
connection.Open();
var query = string.Format("select * from [{0}$]where key = '{1}'", sheet, keyName);
var value = connection.Query<T>(query).FirstOrDefault();
connection.Close();
return value;
}
}
函数调用:
LogInUserModel user = AccessExcelData.GetTestData<LogInUserModel>("LogInPageData.xlsx", "LogInUserData", "LogInSuccessfully");
string email = user.Email.ToString();
有人能帮上忙吗?我如何用Excel 管理MSTest中的复杂数据
也许不是您正在寻找的解决方案,而是代码所需更改最少的解决方案。。。
由于所有工作表(主键(只有一个结果,请检查第一个查询是否为空,如果为空,则在工作表2上再次运行。
示例:
LogInUserModel user = AccessExcelData.GetTestData<LogInUserModel>("LogInPageData.xlsx", "LogInUserData", "LogInSuccessfully");
if (user is null)
{
user = AccessExcelData.GetTestData<LogInUserModel>("LogInPageData.xlsx", "Sheet2", "LogInSuccessfully");
}
string email = user.Email.ToString();