C# 用C语言从Excel文件查询数据库比较单元格
我正在尝试查看excel电子表格中的此单元格是否是数据库中的主键。我正在使用Aspose来导入excel文件。我知道连接字符串也在工作 我想查询这个代码的数据库。如果此代码返回一行,我希望该标志为true。如果没有行返回,我想继续,因为标志已经设置为false。我试过了,尽管数据库中没有这些代码,但我一直在实现。有人能帮我让它正常工作吗?还是有更简单的方法来完成这项任务C# 用C语言从Excel文件查询数据库比较单元格,c#,sql,excel,C#,Sql,Excel,我正在尝试查看excel电子表格中的此单元格是否是数据库中的主键。我正在使用Aspose来导入excel文件。我知道连接字符串也在工作 我想查询这个代码的数据库。如果此代码返回一行,我希望该标志为true。如果没有行返回,我想继续,因为标志已经设置为false。我试过了,尽管数据库中没有这些代码,但我一直在实现。有人能帮我让它正常工作吗?还是有更简单的方法来完成这项任务 #region StateCharges_Status public static bool StateCharges_Sta
#region StateCharges_Status
public static bool StateCharges_Status(DataRow dr) {
bool ok = StateCharges_Exists(dr);
if (ok)
return StateCharges_Update(dr);
else
return StateCharges_Insert(dr);
}
#endregion
#region StateCharges_Exists
private static bool StateCharges_Exists(DataRow dr) {
bool flag = false;
Database pbkDB = DatabaseFactory.CreateDatabase("PbKConnectionString");
DbCommand dbCommand = pbkDB.GetSqlStringCommand(string.Format(@"Select * from tblCtStateCharges where code = '{0}'", dr["Code"].ToString()));
try {
pbkDB.ExecuteNonQuery(dbCommand);
flag = true; // <-- I guess this is where it needs something added.
} catch (Exception ex) {
Console.WriteLine(ex.ToString());
}
return flag;
}
#endregion
您应该使用返回IEnumerable的ExecuteQuery方法 然后,您可以通过以下方式测试结果:
var result = pbkDB.ExecuteQuery(dbCommand);
flag = result.Count() > 0;
您应该将查询更改为以下内容:
DbCommand dbCommand = pbkDB.GetSqlStringCommand(string.Format(@"Select count(*) as cnt from tblCtStateCharges where code = '{0}'", dr["Code"].ToString()));
如果只关心记录是否存在,则无需选择每个字段
然后你就换了
pbkDB.ExecuteNonQuery(dbCommand);
差不多
int count = (int)pbkDB.ExecuteScalar(dbCommand);
然后将标志设置更改为“您不再需要if”
flag = count > 0;
所以新代码看起来像
private static bool StateCharges_Exists(DataRow dr) {
bool flag = false;
Database pbkDB = DatabaseFactory.CreateDatabase("PbKConnectionString");
DbCommand dbCommand = pbkDB.GetSqlStringCommand(string.Format(@"Select count(*) as cnt from tblCtStateCharges where code = '{0}'", dr["Code"].ToString()));
try {
int count = (int)pbkDB.ExecuteScalar(dbCommand);
flag = count > 0;
} catch (Exception ex) {
Console.WriteLine(ex.ToString());
}
return flag;
}我收到一个错误。无法解析活动模板会话中的符号“ExecuteQuery”活动热点