2014-09-09 3 views
0

Так что мой SQL запросDatatable имени столбца не включает имена, начинающиеся с номером

List<string> names = new List<string>();  
    cmd = new SqlCommand("Select " + string.Join(",", names) + " from test"); 
    da = new SqlDataAdapter(cmd); 
    dt = new DataTable(); 
    da.Fill(dt); 

Когда он заполняет таблицу данных есть имена столбцов, начинающиеся с номером и опускает номер и просто печатают текст после

Например, , если название столбца было «1AB2C» , оно становится «AB2C». Может ли кто-нибудь сказать мне, почему это происходит и где оно изменяется?

+1

пэд столбцы с [и] Пример: [1AB2C] –

ответ

1

Из стандартов SQL имена таблиц не могут начинаться с числа. Увидеть этот пост для получения дополнительной информации: Table or column name cannot start with numeric?

+0

любые обходные пути вы знаете? – Mike

+0

вам нужно использовать кавычки 'перед именем таблицы. например: SELECT * FROM '2names' – rPulvi

+0

или вы можете изменить свое соглашение об именах. Например, вы можете использовать и подчеркивать перед именем таблицы или префиксом типа «tbl_» – rPulvi

0

попробовать этот

List<string> names = new List<string>(); 
      names.Add("[1col]"); //you may write your 
      names.Add("name"); 
      string[] arr = names.ToArray(); 
      SqlConnection conn = new SqlConnection(ConnectionString); 
      conn.Open(); 
      SqlCommand cmd = new SqlCommand("Select " + String.Join(",", arr) + " from test"); 
Смежные вопросы