Вызов функции системы SQL для DataTable в C # - PullRequest
0 голосов
/ 14 декабря 2018

Мне нужно выполнить системную функцию сервера sql над DataTable.

DataTable имеет строковое значение, например «12345», в этом мне нужна подстрока, которая настроена в таблице сервера Sql, как SUBSTRING (, 0,2).

Я могу получить условие из таблицы БД.Но как применить это условие в DataTable?

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Вы можете использовать функцию 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);
}
0 голосов
/ 14 декабря 2018

Есть много способов достичь этого.

1 - Вы можете создать представление, которое вызывает вашу функцию, например:

Create View testView
As
Select
dbo.myFunction(parameter)
FROM dbo.TableName

2 - Вы можете использовать функцию подстроки C # в качестве Россаупомянул в своем комментарии:

DataTableString.Substring(0, 2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...