ディレクトリ名にスペースがない場合、次の作品を使用して
文字列 file1 の場合、文字列 file2 でリーダーを実行し、例外を作成しますか? 一部のクライアントのパスにスペースが含まれるフォルダーにアクセスする必要があります。
file1 = "C:\\test1\\file.dbf";
file2 = "C:\\test 2\\file.dbf";
OdbcConnection Connection = new OdbcConnection();
Connection.ConnectionString = @"Driver={Microsoft Visual FoxPro Driver};Exclusive=No;SourceType=DBF;SourceDB=" + strFilename + ";";
Connection.Open();
OdbcCommand Command = Connection.CreateCommand();
Command.CommandText = @"SELECT * FROM " + file1; //Command.CommandText = @"SELECT * FROM " + file2;
一度 Connection.Open(); を実行します。正しく開き、
OdbcDataReader Reader = Command.ExecuteReader(); を実行したら、
{System.Data.Odbc.OdbcException: エラー [ 42S02 ] [Microsoft][ODBC Visual FoxPro Driver]File 'file2.dbf' が存在しません。
担当者が足りないので回答
私の問題を解決してくれた皆さんの貢献に感謝します。解決策として、(スペースを含む) フル パスを入力し、@ char を使用してリテラル文字列にする必要がありました。何らかの理由で、エスケープ文字 ("\"") で引用符を付けてリテラルにしても解決しませんでした。
要約すると、接続文字列とコマンド文字列のパスの前に @ を使用しました。
strFilename = S.ImportFolder + "\\" +"file"+ ".dbf";
OdbcConnection Connection = new OdbcConnection();
Connection.ConnectionString = @"Driver={Microsoft Visual FoxPro Driver};Exclusive=No;SourceType=DBF;SourceDB="+@strFilename+";";
Connection.Open();
OdbcCommand Command = Connection.CreateCommand();
Command.CommandText = @"SELECT * FROM "+ @strFilename;
OdbcDataReader Reader = Command.ExecuteReader();