C# 验证数学表达式中操作数的数据类型

C# 验证数学表达式中操作数的数据类型,c#,database,C#,Database,我必须创建一个以列对象作为操作数的数学表达式,并验证操作数的数据类型。column对象表示数据库列,由表名、列名和数据类型组成。如果操作数数据类型为text或bool则应显示错误消息。如何进行此验证?这将根据您使用的数据库引擎而有所不同,但对于SQL Server,您可以使用此查询加载列shema数据以进行比较: SELECT COLUMN_NAME, IS_NULLABLE, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH FROM INFORMATION_SCHEMA

我必须创建一个以列对象作为操作数的数学表达式,并验证操作数的数据类型。column对象表示数据库列,由表名、列名和数据类型组成。如果操作数数据类型为
text
bool
则应显示错误消息。如何进行此验证?

这将根据您使用的数据库引擎而有所不同,但对于SQL Server,您可以使用此查询加载列shema数据以进行比较:

SELECT COLUMN_NAME, IS_NULLABLE, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TABLE_NAME
((column1+column2)/column3)是我需要验证的表达式。column1、column2和column3是3个列对象(c#对象),它将数据类型存储为字符串。我需要使用column对象比较数据类型。当您说“Isa expression”时,这是否意味着字符串值等于“((column1+column2)/column3)”?然后,您的问题是将该文本解析为抽象语法树,或者至少将文本标记为标记序列。一旦有了这些,您就可以遍历AST或令牌,将它们与列对象相匹配,检查数据类型并做出相应的反应。