0

私はいくつかのファイルの文字列ファイルパスとファイル名であるSQLデータベースを持っています。IDE として Visual Studio 2008 を使用し、開発には SQL Server 2005 を使用しています。

ファイルパスを取得するために SQL クエリを実行しようとすると、正しい結果が返されます。しかし、C# で Windows アプリケーションから SQL クエリを実行すると、すべて\が に変更された Filepath が返され//ます。

SQL Server Management Studio から実行した SQL クエリを次に示します。

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

それFilePathC:\Program Files\Test\Mydoc.pdf

しかし、以下で説明するように、C# Windows フォーム コードを試しているとき。の値が間違っています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 ();
}

何が問題なのですか?

4

1 に答える 1

1

デバッガーでこのパスを見ていると思います。デバッガーはパスをエスケープしているだけで、他には何もありません。コンソールなどのどこかに書き込むと、元のパスが得られます (単一のバックスラッシュ付き)。

于 2013-09-06T05:51:56.980 に答える