2013-11-13 4 views
0

Я попытался изменить тип столбца Autonumber, я изменил некоторые столбцы в текст этого запроса:как изменить тип столбца Autonumber

ALTER TABLE table ALTER COLUMN column TEXT(500) 

Это работает, но я не могу изменить тип столбца Autonumber по запросу,
поэтому я попытался написать код, чтобы изменить тип столбца:

Dim statement As String = String.Format("SELECT * FROM [" & TableName & "]") 
Dim command As OleDbCommand = New OleDbCommand(statement, con) 
Dim adapter As OleDbDataAdapter = New OleDbDataAdapter(command) 
Dim schema As DataTable = New DataTable 
adapter.FillSchema(schema, SchemaType.Source) 
Dim c As DataColumn = schema.Columns(schema.Columns.Count - 1) //Last Column 
adapter.Dispose() 
command.Dispose() 
schema.Dispose() 

так колонка C (DataColumn), я не знаю, что делать дальше ...
(как может я меняю является тип столбца для Autonumber (C#/VB.net))

+0

'C#' тег здесь неважно. Удалено –

+0

@ SonerGönül Я думаю, что C# tag здесь не избыточен. если кто-то отвечает, содержит код C#, для меня это достаточно. – JC11

+0

Стол пустой? –

ответ

0

Если таблица в базе данных Access уже существующие записи, то вы не можете преобразовать существующий поле для AutoNumber, даже если это поле пустым:

После ввода данных в таблицу вы не можете изменить тип данных любого поля в AutoNumber, даже если вы еще не добавили данные в это поле.

noAuto.png

Итак, что вам нужно сделать, это уронить (пустой) столбец существующий, а затем добавить новый столбец AutoNumber с тем же именем

cmd.CommandText = 
     "ALTER TABLE myTable DROP COLUMN myID"; 
cmd.ExecuteNonQuery(); 
cmd.CommandText = 
     "ALTER TABLE myTable ADD COLUMN myID IDENTITY PRIMARY KEY"; 
cmd.ExecuteNonQuery(); 
+0

спасибо, но этот код создает новый столбец и не меняет тип столбца, я могу изменить тип самостоятельно (вручную), но у меня есть 200 таблиц, поэтому мне нужно изменить тип столбца по коду. Я также могу удалить столбец и сохранить его имя в строке, а затем я могу повторно создать этот столбец по запросу, но я не знаю, как создать новый столбец с типом autonumber, мне удастся изменить тип любого столбца на TEXT, поэтому, если есть другой способ изменить тип столбца на autonumber (не по запросу), сообщите мне об этом :). – JC11

+0

@ JC11 Я обновил свой ответ. –

+0

@ JC11 Что вы не понимаете, так это то, что когда вы меняете его из графического интерфейса, MS Access делает что-то похожее на код выше, это не одна строка, его много. Сначала создайте новый столбец так, как вы хотите, но с другим именем, затем обновите данные, затем переименуйте столбец, удалите старый столбец и, наконец, установите начальный порядковый номер столбца на наибольшее значение +1 – Steve

Смежные вопросы