私は以下のメソッドを作成しました。これは正しいデータを返します。私が混乱しているところでは、フォーム上の個々のテキストボックスにこのメソッドの結果を入力する適切な方法は何ですか?c#sqldatareaderメソッドを使用してテキストボックスを作成する
objectdatasourceを使用して、オブジェクトビューをバインドするのではなく、オブジェクトデータソースにバインドするのではなく、フォームをカスタマイズする自由が必要です。
public MemberDetails GetMemberDetail(int membershipgen)
{
SqlConnection con = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand("usp_getmemberdetail", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@MEMBERSHIPGEN", SqlDbType.Int, 5));
cmd.Parameters["@MEMBERSHIPGEN"].Value = membershipgen;
try
{
con.Open();
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.SingleRow);
reader.Read();
MemberDetails mem = new MemberDetails((int)reader["MEMBERSHIPGEN"], (string)reader["MEMBERSHIPID"], (string)reader["LASTNAME"],
(string)reader["FIRSTNAME"], (string)reader["SUFFIX"], (string)reader["MEMBERTYPESCODE"]);
reader.Close();
return mem;
}
catch (SqlException err)
{
throw new ApplicationException("Data error.");
}
finally
{
con.Close();
}
GetMemberDetailは、現在のコンテキストに存在しないことを示します。それはCLMembersという名前の.DLL内にあります。なぜなら、それが存在しないことを示す理由です。だから私はvar memberDetails = CLMembers.GetMemberDetailを試みましたが、getmemberdetailの部分はまだ表示されません。 – Tim
@JawaidAkhtar、 'GetMemberDetail'は非静的メソッドです。つまり、それを呼び出すには、それを含むクラスのインスタンスが必要です。したがって、このメソッドが 'CLMembers'と呼ばれるクラスで定義されていると言っているならば、これを行うことができます:' var memberDetails = new CLMembers()。GetMemberDetail(12345); '。別の可能性は静的にすることです。このようにすると、インスタンスなしで呼び出すことができます: 'var memberDetails = CLMembers.GetMemberDetail(12345);' –
+1のデータアクセスでのクリーンアップ –