2016-04-01 15 views
0

データベースからデータを取得するためのクラスと、Webフォームをグリッドビューに表示するクラスがあります。ここに私のクラスには、次のとおりです。オブジェクトリストにnull値を設定する

public class Personel 
{ 
    dincerelektrnik_AracTakipEntities entity = new dincerelektrnik_AracTakipEntities(); 

    public Personel(int DriverId, string DriverName, string DriverSurname, string DriverPosition, 
     bool DriverGender, string DriverImage, string DriverEmail,string Password, 
     DateTime? DriverBirthDate) 
    { 
     this.DriverId = driverId; 
     this.DriverName = driverName; 
     this.DriverSurname = driverSurname; 
     this.DriverPosition = driverPosition; 
     this.Gender = gender; 
     this.DriverImage = driverImage; 
     this.DriverEmail = driverEmail; 
     this.Password = password; 
     this.BirthDate = birthDate; 
    } 

    private int driverId; 
    public int DriverId 
    { 
     get { return driverId; } 
     set { driverId = value; } 
    } 

    private string driverName; 
    public string DriverName 
    { 
     get { return driverName; } 
     set { driverName = value; } 
    } 

    private string driverSurname; 
    public string DriverSurname 
    { 
     get { return driverSurname; } 
     set { driverSurname = value; } 
    } 

    private string password; 
    public string Password 
    { 
     get { return password; } 
     set { password = value; } 
    } 

    private DateTime? birthDate; 
    public DateTime? BirthDate 
    { 
     get { 
      if (birthDate.HasValue) 
       return birthDate; 
      else 
       return DateTime.Now.Date; 
     } 
     set { birthDate = value; } 
    } 

    private string driverPosition; 
    public string DriverPosition 
    { 
     get { return driverPosition; } 
     set { driverPosition = value; } 
    } 

    private bool gender; 
    public bool Gender 
    { 
     get { return gender; } 
     set { gender = value; } 
    } 

    private string driverImage; 
    public string DriverImage 
    { 
     get { return driverImage; } 
     set { driverImage = value; } 
    } 

    private string driverEmail; 
    public string DriverEmail 
    { 
     get { return driverEmail; } 
     set { driverEmail = value; } 
    } 

    public List<Personel> GetAllDrivers() 
    { 
     List<Personel> personeller = new List<Personel>(); 

     var drivers = entity.prGetDrivers(); 
     foreach (var driver in drivers) 
     { 
      personeller.Add(new Personel(driver.DriverId, driver.DriverName, driver.DriverSurname, 
       driver.DriverPosition, driver.DriverGender, driver.DriverImage, driver.DriverEmail, 
       driver.Password, driver.DriverBirthDate)); 
     } 
     return personeller; 
    } 
} 

そして、私のGridView:

<asp:GridView ID="GridViewPersoneller" runat="server" AutoGenerateColumns="false"> 
      <Columns> 
       <asp:TemplateField HeaderText="Ad/Soyad"> 
        <ItemTemplate> 
         <%#Eval("DriverName") %>&nbsp;<%#Eval("DriverSurname") %> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField> 
        <ItemTemplate> 
         <%#Eval("DriverEmail") %> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField> 
        <ItemTemplate> 
         <%#Eval("DriverBirthDate") %> 
        </ItemTemplate> 
       </asp:TemplateField> 

      </Columns> 
     </asp:GridView> 

そして、Webフォームの分離コード:

Personel personel = new Personel(1, "deneme", "deneme", "deneme", true, "deneme", "deneme", "deneme", DateTime.Now.Date); 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     FillPeronselGridView(); 
    } 

    protected void FillPeronselGridView() 
    { 
     List<Personel> personelList = personel.GetAllDrivers(); 
     GridViewPersoneller.DataSource = personelList; 
    } 

私は、コードを実行すると、私は何も見えません。エラーでもグリッドビューでもありません。私はデバッグするとき、私は私のストアドプロシージャですべてのデータを取得し、問題なく 'ドライバ'変数に格納することがわかりますが、オブジェクトリストに追加すると、null値が追加されます。なぜこれが起こっているのですか?これをどのように解決できますか?あなたの時間とサポートに感謝します。

+0

「戻る人物」の「人物」には戻り値が含まれていますか? –

+0

2行(データベーステーブルと同じ行番号)が含まれていますが、両方の行にはNULL値のみが含まれています。すべての属性にnull値が含まれていることを意味します。 @GuruprasadRao –

答えて

1

コンストラクタでは、変数をTitlecaseで定義しましたが、プロパティを初期化するときにクラスフィールドを使用しました。

クラス変数の代わりに渡されるパラメータを使用するようにコードを変更します。

コンストラクタが必要です。

public Personel(int DriverId, string DriverName, string DriverSurname, string DriverPosition, 
     bool DriverGender, string DriverImage, string DriverEmail, string Password, 
     DateTime? DriverBirthDate) 
    { 
     this.DriverId = DriverId; 
     this.DriverName = DriverName; 
     this.DriverSurname = DriverSurname; 
     this.DriverPosition = DriverPosition; 
     this.Gender = DriverGender; 
     this.DriverImage = DriverImage; 
     this.DriverEmail = DriverEmail; 
     this.Password = Password; 
     this.BirthDate = DriverBirthDate; 
    } 
関連する問題