WCF サービスから SQL Server Express データベースにクエリを実行するメソッドを C# で作成しています。これを行うには ADO.NET を使用する必要があります (後で LINQ で書き直します)。
このメソッドは 2 つの文字列 ( fname, lname
) を受け取り、一致するレコードから「健康保険 NO」属性を返します。これをリストに読み込みたい (他にも取得する属性がいくつかあります)。
現在のコードは空のリストを返します。どこが間違っていますか?
public List<string> GetPatientInfo(string fname, string lname)
{
string connString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\xxxx\\Documents\\Visual Studio 2010\\Projects\\ADOWebApp\\ADOWebApp\\App_Data\\ADODatabase.mdf;Integrated Security=True;User Instance=True";
SqlConnection conn = new SqlConnection(connString);
string sqlquery = "SELECT Patient.* FROM Patient WHERE ([First Name] = '"+fname+"') AND ([Last Name] = '"+lname+"')";
SqlCommand command = new SqlCommand(sqlquery, conn);
DataTable dt = new DataTable();
List<string> result = new List<string>();
using (conn)
{
conn.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader != null && reader.Read())
{
dt.Load(reader);
result.Add(Convert.ToString(reader["Health Insurance NO"]));
}
}
}
return result;
}