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;
}
ありがとう!