Как сохранить формулу в sqlserver и использовать эту формулу в приложении - PullRequest
4 голосов
/ 04 февраля 2012

Как мы можем сохранить формулу в таблице в моей работе, которую я использовал для формулы (Формула I может быть динамически создана пользователем) формула пробы

Variabl1+Variable2*3.2+200

эта формула не постоянна.

спасибо

Ответы [ 2 ]

1 голос
/ 11 июня 2012

В C # вы можете использовать службы codeDOM для динамической компиляции кода C # или вы можете динамически создавать дерево выражений , анализируя строку формулы самостоятельно. Но, вероятно, в обоих случаях не хватает производительности, потому что необходима компиляция во время выполнения ( да, за исключением, может быть, , этот может работать достаточно хорошо ). Поэтому из-за этого я бы лучше предложил встроить некоторый механизм сценариев в .NET Framework - такой как Lua или Javascript . Тем не менее, если вы пишете приложение asp.net - почему вы не можете опустить прямой код JavaScript, который вычисляет результат формулы на стороне клиента? Это, вероятно, будет лучшим решением, потому что веб-приложения и сценарии на стороне клиента похожи на мужа и жену: -)

1 голос
/ 04 февраля 2012

Я думаю, что вы должны сохранить именно формулу в базе данных, и когда вы хотите ее использовать, обработайте строку формулы, используя метод replace.Вы должны получить данные Variabl1, Variable2 и использовать этот код:

string f="Variabl1+Variable2*3.2+200";
f= System.Text.RegularExpressions.Regex.Replace(f, "Variabl1", TxBxVar1.Text);
f= System.Text.RegularExpressions.Regex.Replace(f, "Variabl2", TxBxVar2.Text);

, а затем обработать f для запуска формулы.для запуска вы можете использовать

System.Text.RegularExpressions.Regex.Split(f, "+");

и использовать этот код замены для всех математических операторов, которые вам нужны.

примечание: это мой путь.но, может быть, есть другие способы в C #, которые я не знаю.

...