2015-06-27 2 views
0

Я использую следующий фрагмент кода, чтобы запросить локальную базу данных SQL Server CE в .sdf файлеСтроки не возвращаются из непустого таблицы

try 
{ 
    using (SqlCeConnection sqlCe = new SqlCeConnection(ConfigurationManager.ConnectionStrings["logdbcs"].ToString())) 
    { 
     SqlCeCommand sqlCeCommand = new SqlCeCommand(@"SELECT * FROM logs", sqlCe); 
     sqlCe.Open(); 

     var reader = sqlCeCommand.ExecuteReader(); 
     Debug.WriteLine(reader.HasRows); 

     sqlCe.Close(); 

     return ""; 
    } 
} 
catch (Exception exception) 
{ 
    Debug.WriteLine(exception.Message); 
    throw; 
} 

База данных содержит 3 строки, но этот запрос не возвращает ни одной строки на всех , Я делаю это из приложения ASP.NET при отладке с локальной машины.

+0

отладить его и посмотреть, имеет ли sqlCe правильную строку соединения вашей целевой базы данных –

+0

Я не уверен на 100%, что HasRows является надежным на драйвере Ce. Вы пытались просто прочитать первый ряд? –

+0

или попробуйте Debug.WriteLine ((reader.Read()) –

ответ

2

Вы, скорее всего, с помощью DataDirectory в строке подключения (которые вы скрываете от нас), так что смотрите в бен/отладки folde копию файла базы данных.

1

Попробуйте этот код.

Datatable dt = new Datatable(); 

try 
{ 
    using (SqlCeConnection sqlCeConn = new SqlCeConnection(ConfigurationManager.ConnectionStrings["logdbcs"].ToString())) 
    { 
     SqlCeCommand sqlCeCommand = new SqlCeCommand(@"SELECT * FROM logs", sqlCeConn); 
     sqlCeConn.Open(); 

     sqlCeDataAdapter losqlCeDataAdapter = new sqlCeDataAdapter(sqlCeCommand); 
     losqlCeDataAdapter.Fill(dt); 

     return dt; 
    } 
} 
catch (Exception exception) 
{ 
    Debug.WriteLine(exception.Message); 
    throw; 
} 
Смежные вопросы