C# Сохранение переменной с помощью \"" в базе данныхC#

Место общения программистов C#
Ответить
Anonymous
 C# Сохранение переменной с помощью \"" в базе данных

Сообщение Anonymous »

У меня есть шаблон регулярного выражения, хранящийся в базе данных SQLite, который я использую для поиска определенных строк (см. WhatItShouldLookLike ниже). Когда я извлекаю эту переменную из базы данных в свой код, она выглядит так (см. WhatRegExReads ниже). Раньше у меня была жестко закодирована строка с символом @, и все работало нормально, но, как правило, я не люблю жестко кодировать подобные вещи на случай, если они изменятся. Как мне это исправить? Есть ли способ буквально записать строку в том виде, в котором она поступает из базы данных?
Я думал о том, чтобы ввести ключевые слова для замены, когда она выходит из базы данных, но еще не пробовал. Как Char(34).
Код состоит из нескольких разных функций.
var whatItShouldLookLike = @"(?[0-9]{1,2}\"")";
var whatRegExReads = @"(?[0-9]{1,2}\\\"\")";

List lst = GetTblToDictionary("McRegEx");
Dictionary dict = lst.FirstOrDefault(d => d["PatternName"].Equals("LineNoCleanUp"));

//string regExPatt = @"(?[0-9]{1,2}\"")(?\-)(?\w{1,5})*(?\s{1})*(?\-)(?\w{1,3})(?\-[1-3])*(?\-)(?[A-Z]{0,4})(?[0-9]{1,4})(?\-)*(?[A-Z]{0,2})(?\-)*(?[A-Z]{0,3})(?\([W]\))*(?\-)*(?[0-9]{0,1})(?\-)*(? )*(?[0-9]{0,1})(?\/)*(?[0-9]{0,1})(?\"")*";
string regExPatt = dict["Pattern"];

public void GetTblToDictionary(string tblName)
{
try
{
string sql = "Select * from " + tblName;
List lst = new();
using (var con = new SqliteConnection(ConnString))
{
con.Open();

var command = con.CreateCommand();
command.CommandText = sql;

using (SqliteDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
try
{
Dictionary dict = new();
for (int i = 0; i < reader.FieldCount; i++)
{
//need to get literal here

Подробнее здесь: https://stackoverflow.com/questions/790 ... a-database
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»