2013-04-17 98 views
0

進出口新的節目和我的問題是我嘗試顯示一個列表框多個項目和項目來自本地數據庫。我在本地數據庫中獲得了一個表,其中包含列ID,名字,姓氏,電子郵件和地址。如何在listBox中顯示多個本地數據庫項目?

我已經綁定列表框與本地dababase表「用戶」和這裏就是我有這麼遠:

private void button_ShowItems_Click(object sender, EventArgs e) 
    { 
     var dt = new DataTable(); 

     string connectionString = @"Data Source=MyDatabase;Password=xxxxxx;"; 

     using (var cn = new SqlCeConnection(connectionString)) 
     using (var cmd = new SqlCeCommand("Select * From Users", cn)) 
     { 
      cn.Open(); 

      using (var reader = cmd.ExecuteReader()) 
      { 
       dt.Load(reader); 
       listBox_Users.DataSource = dt; 
       listBox_users.DisplayMember = "Firstname" + "Lastname"; 
       listBox_Users.ValueMember = "ID"; 
      } 
     } 
    } 

當我按下按鈕,只顯示「名字」,而不是「姓氏」 。

我有一個窗體,這些數據輸入到本地數據庫「用戶」文本框和工作原理:

private void button_add_Click(object sender, EventArgs e) 
{ 
var insertSQL = "INSERT INTO Inimesed (Firstname, Lastname, Email, Address) VALUES (Firstname, Lastname, Email, Address)"; 

string connectionString = @"Data Source=myDatabase;Password=xxxxxx;"; 
using (var cn = new SqlCeConnection(connectionString)) 
using (var cmd = new SqlCeCommand(insertSQL, cn)) 
    { 
     cn.Open(); 

     cmd.Parameters.Add("@Firstname", SqlDbType.NVarChar); 
     cmd.Parameters.Add("@Lastname", SqlDbType.NVarChar); 
     cmd.Parameters.Add("@Email", SqlDbType.NVarChar); 
     cmd.Parameters.Add("@Address", SqlDbType.NVarChar); 

     cmd.Parameters["Firstname"].Value = textBox1_Firstname.Text; 
     cmd.Parameters["Lastname"].Value = textBox2_Lastname.Text; 
     cmd.Parameters["Email"].Value = textBox3_Email.Text; 
     cmd.Parameters["Address"].Value = textBox4_Address.Text; 
     cmd.ExecuteNonQuery(); 

    } 

}


,我有一個後續問題,如果有人知道: 我將要做的添加使用「名字」 +「姓氏」迴文本​​框的選擇列表框的值?

有噸教程中的「如何textBox中項目添加到C#本地數據庫」,但沒有「如何本地數據庫項目的項目加入到textBox中」。我獲得了所有定義的值。 我應該用「的foreach」命令,「如果」命令或「如果」內部「的foreach」命令的命令?

任何幫助將是偉大的!

+0

爲user_t請你確保你要麼標記爲答案,或者如果這個答案是沒有幫助的評論。非常感謝! – Bertie

回答

1

不管什麼原因,你不能在串聯結合 - 最好的辦法是使用LINQ創建包含Concat的本身就是一個匿名類型 - 見下文。

var results = (from row in dt.AsEnumerable() 
       select new 
       { 
        UserID = row.Field<int>("UserPK"), 
        FirstName = row.Field<string>("FirstName"), 
        LastName = row.Field<string>("LastName"), 
        FullName = row.Field<string>("FirstName") + " " + row.Field<string>("LastName") 
       }).ToList(); 

listBox1.DataSource = results; 
listBox1.DisplayMember = "FullName"; 
listBox1.ValueMember = "UserID"; 

Et瞧,正確顯示全名。

相關問題