Мне нужно выполнить системную функцию sql server через DataTable.
DataTable имеет строковое значение, например. «12345», в этом мне нужна подстрока, которая настроена в таблице сервера Sql, например SUBSTRING (, 0,2).
Я могу получить условие из таблицы БД. Но как применить это условие в DataTable?
@RossBush - Нет, просто применяя логику к значениям данных
В C# есть функция String.Substring (), которая делает то же самое.





Есть много способов добиться этого.
1 - Вы можете создать представление, которое вызывает вашу функцию, то есть:
Create View testView
As
Select
dbo.myFunction(parameter)
FROM dbo.TableName
2 - Вы можете использовать функцию C# Substring, как упомянул Росс в своем комментарии:
DataTableString.Substring(0, 2)
Вы можете использовать функцию SUBSTRING в запросе, который используется для заполнения DataTable. В вашем вопросе использовался SUBSTRING(0, 2). Я предполагаю, что вам нужны первые две буквы в столбце? SUBSTRING в SQL Server начинается с 1, а эта же функция начинается с 0 в C#. Вам нужно будет использовать (Column, 1, 2) в SQL-запросе, чтобы вернуть первые два символа.
string connStr = @"YourConnectionString;";
string cmd = @"SELECT SUBSTRING(ColumnA, 1, 2) AS ColumnA from YourSchema.YourTable";
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
DataTable dt = new DataTable();
//create data adapter from string with SQL command and SQL Connection object
SqlDataAdapter da = new SqlDataAdapter(cmd, conn);
//populate DataTable
da.Fill(dt);
}
Вы передаете Datatable обратно на SQL Server?