【发布时间】:2024-04-24 11:50:02
【问题描述】:
我需要在我的 C# 应用程序中的 MS Access 表上创建一个查询。但是,此查询将需要调用一个函数(将 [Employees] 数字字段转换为称为 [Employee Band] 的文本字段 - 1 到 5、5 到 10 等)。最初,我在 Access 中创建了查询(使用适当的函数),但如果不向应用程序添加额外的加载项,就无法从 C# 调用它(我真的不想这样做)。
我不知道如何执行此操作(使用 c# 函数进行转换),因此将不胜感激。
我添加了一些粗略的代码(尽管我知道它不正确),但它应该让您对我正在尝试做的事情有所了解:
private void EmployeeTest()
{
using (var con = new OleDbConnection())
{
//Removing any existing data
con.ConnectionString = DBConnections.ConnStringCO;
con.Open();
using (var cmd = new OleDbCommand())
{
cmd.Connection = con;
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = @"INSERT INTO [Report data] ( [Employee band] ) IN 'C:\\Users\\Dev\\Reporting-System.mdb' SELECT repEmployeeBand([Employees]) AS ExprExmployeeBanding FROM [tblSource Dat];";
cmd.ExecuteNonQuery();
}
con.Close();
}
}
private string ExprExmployeeBanding(Variables varEmployees) as long
{
//Do converstion
}
【问题讨论】:
-
您能否提供原始值的图形示例以及转换后的最终输出应该是什么?
-
当然,所以您可以将任何数值(员工人数)导出到:
-
1-4, 5-9, 9-25, 25-49, 50+
-
实际数据上面有破折号
-和逗号,?或者它只是数字范围,也没有逗号? -
破折号 - 本质上,如果有 7 名员工,我希望值返回“5-9”
标签: c# ms-access oledb user-defined-functions