0

C# を使用するスキャナー アドインを開発中です。

私のコードはエミュレーターでは機能しますが、スキャナー ハードウェア自体では機能しません。スキャナーに System.Data.SqlClient がないためでしょうか? わからない。生成された dll ファイルに System.Data.SqlClient を含めるように指定する方法はありますか?

私が得るエラーは、con.Open() で Named Pipes Provider error 40 です。スキャナーがライブラリを持っていないことが問題だった場合、SqlConnection への最初の参照でエラーがスローされませんか? ソースコードは次のとおりです。

String clientName = "";

        try
        {
            // Setting up the SqlConnectionStringBuilder
            SqlConnectionStringBuilder buildIt = new SqlConnectionStringBuilder();
            buildIt.DataSource = "xxx.xx.x.xx";
            buildIt.InitialCatalog = "database";
            buildIt.IntegratedSecurity = true;

            using (SqlConnection con = new SqlConnection(buildIt.ConnectionString))
            {
                con.Open();
                using (SqlCommand command = new SqlCommand("SELECT First_Name, Last_Name FROM background WHERE Patient_No=@Patient_No", con))
                {
                    command.Parameters.AddWithValue("@Patient_No", clientID);
                    SqlDataReader reader = command.ExecuteReader();
                    if (reader.HasRows)
                    {
                        reader.Read();
                        clientName = reader.GetString(0).Trim() + " " + reader.GetString(1).Trim();
                    } // end if (reader.hasRows)
                    else
                    {
                        // No client found for this ID.
                        return false;
                    } // end else
                } // end using (SqlCommand command = new SqlCommand("SELECT First_Name, Last_Name FROM background WHERE Patient_No=@Patient_No", con))
            }
        } // end try
        catch (Exception err)
        {
            // Test code.
            // MessageBox.Show(err.Message);
            exporterHost.WriteSystemLog(LogType.Error, "E9999999", "SQL ERROR: " + err.Message);
            return false;
        }

ありがとう!

4

0 に答える 0