0

私はMonoを初めて使用し、Monoでwinformsアプリを実行するための非常に基本的な概念実証テストを実行しようとしています。VS2012で非常にシンプルなアプリを作成し(基本的に1つのボタンといくつかのデータアクセスコードがあります)、MoMAで実行すると、すべてがチェックアウトされます。しかし、Monoで.exeを実行しようとすると(Mono-2.10.9コマンドプロンプトを使用して)、エラーログに次のエラーが表示されます。

Unhandled Exception: System.NullReferenceException: Object reference not set to an  
instance of an object
at Mono.Data.Tds.Protocol.TdsConnectionPool.GetConnection () [0x00000] in <filename
unknown>:0
at System.Data.SqlClient.SqlConnection.Open () [0x00000] in <filename unknown>:0
at MonoWinForm1.DataAccess.ExecuteSQLSelect (ConnectionStrings connectionString,
System.String sql) [0x00000] in <filename unknown>:0 
at MonoWinForm1.Form1..ctor () [0x00000] in <filename unknown>:0
at (wrapper remoting-invoke-with-check) MonoWinForm1.Form1:.ctor ()
at MonoWinForm1.Program.Main () [0x00000] in <filename unknown>:0

私はこの記事をモデルとして使用していました:http ://www.mono-project.com/Guide:_Porting_Winforms_Applications 。C#を使用してVS2012で記述およびビルドでき、Monoを使用して実行できることを示しているようですが、データコードには当てはまらないことは明らかです。例外の原因となるメソッドは次のとおりです。

DataSet results = new DataSet();

using (SqlConnection connection = new SqlConnection(GetConnectionString(connectionString)))
{
    using (SqlCommand command = new SqlCommand(sql, connection))
    {
        connection.Open();
        command.CommandType = CommandType.Text;
        command.CommandTimeout = Int32.Parse(ConfigurationManager.AppSettings["SQLCommandTimeout"]);

         SqlDataAdapter adapter = new SqlDataAdapter(command);
         adapter.Fill(results);
    }
}

アプリを作成してMonoで実行するよりも複雑だと思います。誰かが私を正しい方向に導いてくれたら、本当にありがたいです。ありがとう。

4

1 に答える 1

0

リストされたコードに変更を加えることなく、現在は機能しています。クラスで定義された他のいくつかの SQL アクセス メソッドがありましたが、エラーの原因となったのはそのうちの 1 つだったに違いありません。私が呼び出していないメソッドが例外を引き起こす理由はわかりませんが、それが起こっていたことであり、例外はガイダンスを提供しませんでした. とにかく、助けてくれてありがとう。そして、不当に非難して申し訳ありません、モノ。

于 2013-02-15T16:37:03.713 に答える