У меня есть этот небольшой вопрос, которым это было на моем уме некоторое время теперь.
Здесь это идет:
Действительно ли это возможно к временному файлу, отключают Auto_Increment на идентификаторе столбца.
Так, чтобы я мог добавить, что новая строка к таблице и способности указывает Значение идентификатора при вставке строки.
И затем в конце включают Auto_Increment снова и позволяют, делают его работу, как обычно?
И если его возможное, как я могу сделать это?
Структура таблицы очень проста
Имя столбца (атрибуты)
ID (Primary Key, Auto Increment, int, not null)
Name (nvarchar(100), not null)
Примечание:
People
.Я действительно надеюсь, что его возможное, это прибыло бы очень удобное.
Спасибо
Править
SqlActions SqlActions = new SqlActions();
SqlCeCommand SqlCmd = new SqlCeCommand("SET IDENTITY_INSERT People ON", SqlActions.Connection());
try
{
SqlCmd.ExecuteNonQuery();
}
catch (SqlCeException Error)
{
Console.WriteLine(Error.ToString());
}
string query = "INSERT INTO People SET (ID, Nome) VALUES (@ID, @Nome)";
SqlCeCommand SqlInsert = new SqlCeCommand(query, SqlActions.Connection());
SqlInsert.Parameters.AddWithValue("@ID", 15);
SqlInsert.Parameters.AddWithValue("@Nome", "Maria");
try
{
SqlInsert.ExecuteNonQuery();
}
catch (SqlCeException Error)
{
Console.WriteLine(Error.ToString());
}
Строка подключения работает, я попробовал ее.
Он сообщает:
Была ошибка при парсинге запроса. [Маркерный номер строки = 1, Маркерное смещение строки = 20, Маркер по ошибке = НАБОР]
РЕШЕНИЕ благодаря OrbMan
SqlActions SqlActions = new SqlActions();
SqlCeCommand SqlCmd = new SqlCeCommand("SET IDENTITY_INSERT People ON", SqlActions.Connection());
try
{
SqlCmd.ExecuteNonQuery();
string query = "INSERT INTO People (ID, Nome) VALUES (@ID, @Nome)";
SqlCmd.CommandText = query;
SqlCmd.Parameters.AddWithValue("@ID", 15);
SqlCmd.Parameters.AddWithValue("@Nome", "Vania");
SqlCmd.ExecuteNonQuery();
}
catch (SqlCeException Error)
{
Console.WriteLine(Error.ToString());
}
Я считаю, что вы можете использовать SET IDENTITY_INSERT
. Я не уверен, работает ли это во всех версиях.
Обновление 2:
Попробуйте эту версию:
SqlActions SqlActions = new SqlActions();
SqlCeCommand SqlCmd = new SqlCeCommand("SET IDENTITY_INSERT People ON", SqlActions.Connection());
try
{
SqlCmd.ExecuteNonQuery();
string query = "INSERT INTO People (ID, Nome) VALUES (@ID, @Nome)";
SqlCmd.CommandText = query;
SqlCmd.Parameters.AddWithValue("@ID", 15);
SqlCmd.Parameters.AddWithValue("@Nome", "Maria");
SqlCmd.ExecuteNonQuery();
}
catch (SqlCeException Error)
{
Console.WriteLine(Error.ToString());
}