2013-09-06 4 views
0

У меня есть база данных sql, где я являюсь строкой filepath и именем файла некоторых файлов. Я использую Visual Studio 2008 как IDE и SQL Server 2005 для разработки.Путь к файлу изменяется при выполнении sql-запроса из C#

Если я пытаюсь выполнить SQL-запрос, чтобы получить путь к файлу, он возвращает правильный результат. Но когда я выполняю SQL-запрос из приложения Windows в C#, он возвращает путь к файлу, в котором все \ изменены на //.

Вот SQL-запрос я выполнил из SQL Server Management Studio:

select FilePath FROM dbo.[tbl_name] WHERE SerialNo = 2; 

Это приводит к FilePath быть C:\Program Files\Test\Mydoc.pdf

Но когда я пытаюсь через окна C# формирует код, как указано ниже. Я получаю неправильное значение для FilePath: C://Program Files//Test//Mydoc.pdf

try 
{ 
    using (connection = new SqlConnection(connectionString)) 
    { 
      connection.Open(); 
      using (SqlCommand command = new SqlCommand("SELECT FilePath FROM dbo.[tbl_name] WHERE SerialNo LIKE @Sno", connection)) 
      { 
       command.Parameters.Add(new SqlParameter("Sno", Serial)); 
       FiletoOpen = command.ExecuteScalar().ToString(); 
       Process.Start(FiletoOpen); 
      } 
     } 
} 
catch (Exception ex) 
{ 
    MessageBox.Show(ex.ToString(), "Exception has occured!", MessageBoxButtons.OK); 
} 
finally 
{ 
     connection.Close(); 
} 

Что может быть проблема?

+0

Почему вы считаете это проблемой? – zerkms

+0

Потому что это неправильный метод FilePath to Process.start() и выбрасывание исключения, поскольку система не может найти указанный файл. – Utkarsh

ответ

1

Я думаю, вы видите этот путь в своем отладчике. Отладчик просто выходит из пути, и ничего больше. Если вы напишете его где-нибудь, например, консоль, вы получите исходный путь (с одиночной обратной косой чертой).

+0

На самом деле я получал сообщение об ошибке как исключение, тогда я попытался отладить и нашел эту проблему. Исключение происходит в строке process.start (FilePath) кода, что означает, что FilePath, передаваемый процессу Process.start(), неверен. Предложите любое другое решение. – Utkarsh

+0

slashed должно быть \ not /. Я думал, что это была типичная ошибка. – Ehsan

+0

Да, это была типичная ошибка. Я получаю filepath как C: \\ Program Files \\ Test \\ Mydoc.pdf. Но я получаю правильный путь с помощью консоли. Не знаю, как это решить !. – Utkarsh

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