Как исправить ошибку «Не удалось связать слово« идентификатор из нескольких частей » - PullRequest
2 голосов
/ 10 апреля 2019

Я хочу вставить некоторые данные из блокнота, но я получил эту ошибку: «Не удалось связать идентификатор из нескольких частей« id.localitate »».

Вот код:

string[] siruri = sir.Split(split);
cmd = new SqlCommand("Insert into Localitati(nume) values(@localitate)", con);

cmd.Parameters.AddWithValue("localitate", siruri[0].Trim());
cmd.ExecuteNonQuery();

cmd = new SqlCommand("Select id.localitate from Localitati where nume=@nume", con);

cmd.Parameters.AddWithValue("nume", siruri[0].Trim());

int idlocalitate = Convert.ToInt32(cmd.ExecuteScalar());

int nrzile;

Ответы [ 3 ]

2 голосов
/ 10 апреля 2019

Согласно вашей команде id.localitate - это столбец в таблице с именем Localitati , вам нужно использовать имя столбца в квадратных скобках как [id.localitate], поэтому код будет:

cmd = new SqlCommand("Select [id.localitate] from Localitati where nume=@nume", con);
0 голосов
/ 10 апреля 2019

Допустим, у вас есть таблица "Localitati", подобная этой:

| Id | Name | FatherId |
| 1  | A    | null     |
| 2  | B    | 1        |

Вы можете запустить Select следующим образом:

SELECT Id FROM Localitati WHERE 1 = 1;

В своем запросе вы можете установить синонимы для вашеготаблицы для выбора столбца коррекции.Это необходимо, если вы хотите присоединиться к самой таблице:

   SELECT a.Id, b.Id
     FROM Localitati a
LEFT JOIN Localitati b
       ON a.Id = b.FatherId
    WHERE 1 = 1;

В вашем вопросе указано, что имя вашей колонки - "id.Localitati" (идентификатор не думаю).Если это так, вы должны указать имя столбца:

| Id.Localitati | Name | FatherId |
| 1             | A    | null     |
| 2             | B    | 1        |

Запрос будет выглядеть следующим образом:

   SELECT a."Id.Localitati", b."Id.Localitati"
     FROM Localitati a
LEFT JOIN Localitati b
       ON a."Id.Localitati" = b.FatherId
    WHERE 1 = 1;

Но вы не должны использовать точки в любых именах..

0 голосов
/ 10 апреля 2019

Да, потому что в вашем запросе не определено ни одного псевдонима таблицы. Должно быть тогда как

Select id.localitate from Localitati id where nume=@nume

Или просто запрос без псевдонима таблицы

Select localitate from Localitati where nume=@nume

за ваш комментарий id.localitate - это столбец в таблице под названием Localitate

Вам нужно выйти из столбца, затем использовать [], как Select [id.localitate] или Select "id.localitate", хотя я бы никогда не рекомендовал иметь столбец с таким именем. Правильно определите имя объекта вашей БД (Таблица, Столбец)

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