2017-02-02 6 views
3

Я создаю таблицы с кодом C# с сервера sql. Для этого я создал одну динамическую функцию создания таблицы, в которой я передал некоторые параметры. Один из параметров - это datatable, в котором я получаю детали столбца. Все работает нормально, но одна второстепенная проблема заключается в том, что есть таблица в sql с идентификатором (1,1)В C# я всегда получаю значение Autoincrementseed как 0 в определении таблицы, даже если значение столбца таблицы задано как 1 в мс sql

sql table screenshot

я получаю начальное значение этого столбца как 0 в C# и, следовательно, данные вставки со значением идентификатора 0.

code debugging screenshot

Для получения дефиниции таблицы из базы данных, я использую простой запрос, например

select * from tablename 

Сообщите мне, если какая-либо дополнительная информация или какой-либо дополнительный код, который я могу предоставить здесь.

Хорошо, я обновил свой вопрос, как я заполняю свои данные.

sqlcmd = new SqlCommand("select * from item.TableName", connSource); 
dt = new DataTable(); 
dt.Load(sqlcmd.ExecuteReader()); 
+0

Можете ли вы показать нам весь код вашего ado.net? –

+0

Почему вы ожидаете, что это 1? Как заполняется DataTable, может быть, проблема –

+0

@TimSchmelter, потому что я установил идентификатор как (1,1) в базе данных при создании этой таблицы, и я ожидаю того же определения этой таблицы с начальным значением 1 вместо 0. И для заполняя datatable, как я уже упомянул, я просто использую select * from query. – kandarp

ответ

0

Пожалуйста, попробуйте ниже запрос в C# код и передать имя_таблицы, чтобы получить Семя и шаг:

SqlCommand sqlcmd = new SqlCommand("SELECT IDENT_SEED(TABLE_NAME) AS  
Seed,IDENT_INCR(TABLE_NAME) AS Increment FROM INFORMATION_SCHEMA.TABLES 
WHERE OBJECTPROPERTY(OBJECT_ID(TABLE_NAME), 'TableHasIdentity') = 1 AND 
TABLE_TYPE = 'BASE TABLE' AND TABLE_NAME = '" + tableName + "'", 
srcConStr); 

SqlDataReader readercmd = sqlcmd.ExecuteReader(); 

while (readercmd.Read()) 
{ 
    sqlsc += " IDENTITY(" + readercmd["Seed"].ToString() + "," +  
    readercmd["Increment"].ToString() + ") "; 
} 

readercmd.Close(); 

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

  • Нет связанных вопросов^_^