0

これは初心者の質問です。ユーザーのプロパティを設定するクラスを C# で作成しようとしてUserOrgsいます (各ユーザーは複数持つことができます)。

私はこれまでのところこれを持っています:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.Data;

/// <summary>
/// Summary description for clsRepUser
/// </summary>
public class clsUser
{
    private string userid;
    private List<string> userorgs;

    public string UserID
    {
        get
        {
            return userid;
        }
        set
        {
            userid = value;
        }
    }

    public List<string> UserOrgs
    {
        get
        {
            return userorgs;
        }
        set
        {
            userorgs = value;
        }
    }

    clsConn cCon = new clsConn();
    String connStr = "";
    public clsUser()
    {

    }

    public DataSet GetUserOrg(string UserID)
    {
        DataSet ds = new DataSet();
        SqlConnection conn = new SqlConnection(cCon.getConn());

        SqlCommand cmd = new SqlCommand("sp_getUserOrgs", conn);

        // 2. set the command object so it knows
        // to execute a stored procedure
        cmd.CommandType = CommandType.StoredProcedure;

        // 3. add parameter to command, which
        // will be passed to the stored procedure
        cmd.Parameters.Add(
            new SqlParameter("@UserID", UserID));

        try 
        {
            // Open the connection and execute the Command
            conn.Open();
            SqlDataAdapter sqlDA = new SqlDataAdapter();

            sqlDA.SelectCommand = cmd;
            sqlDA.Fill(ds);
        } 
        catch (Exception ex) 
        {
        } 
        finally 
        {
            conn.Close();
        }

        return ds;    
    }
}

関数UserOrgsからそのユーザーのプロパティを設定するにはどうすればよいですか? GetUserOrgそれとも、私はこれで道を外れていますか?

4

4 に答える 4

0

ストアド プロシージャを使用しているため、正確なコードを提供することは困難ですが、アイデアは、DataSet のすべての行を調べ、.Add() メソッドを使用してその行の要素をリストに追加することです。このようなもの:

foreach (DataRow dr in ds.Tables[0].Rows) {  
  userorgs.Add(dr["orgs_column"].ToString()); 
}
于 2013-01-28T16:16:27.587 に答える
0

私はormを使用します.linqtosqlは初心者にとって簡単です. データテーブルとデータリーダーの使用に行き詰まっている場合

返された結果を繰り返し処理し、戻り値をオブジェクトに詰め込む必要があります。

これは、始めるのにかなり良い入門書です。

于 2013-01-28T16:04:41.913 に答える
0

次の3つの方法があると思います。

  1. ジェネリックを使用できますLazy<>
  2. プロパティをメソッドに置き換えますGetUserOrganizations()。より明確です。「新鮮な」組織を手に入れたい場合。
  3. 取得ロジックを別のレイヤー (BI、DAL) に移動します。次に、ユーザー タイプはデータ コントラクトのようなものです。
于 2013-01-28T16:09:39.320 に答える