好吧,我有2個列表框,其中一個連接到另一個數據庫。將數據從一個列表框傳輸到另一個列表框#
我希望能夠將連接到數據庫的列表框中的選定項目發送到不是。
香港專業教育學院寫了這個代碼但是
listBox2.Items.Add(listBox1.SelectedItem);
代替COPYIN我得到「
System.Data.DataRowView
任何人就吃什麼建議的項目?
好吧,我有2個列表框,其中一個連接到另一個數據庫。將數據從一個列表框傳輸到另一個列表框#
我希望能夠將連接到數據庫的列表框中的選定項目發送到不是。
香港專業教育學院寫了這個代碼但是
listBox2.Items.Add(listBox1.SelectedItem);
代替COPYIN我得到「
System.Data.DataRowView
任何人就吃什麼建議的項目?
我不靠近我的VS安裝檢查.NET庫,但是我估計你需要一個更深的屬性來獲得這個值,比如listBox1.SelectedItem.Value
。
您可以顯示第一個和第二個lsibox聲明的代碼嗎?其他控件具有像DisplayName和ValueName這樣的屬性 - 從數據行中設置哪些列將顯示在列表框中,以及哪些將被視爲值。在你的情況下,問題是第二個lisbox不知道應該在哪個列中顯示。
更新: 當listBox2.Items.Add(listBox1.SelectedItem)
執行實際的原始數據行(這些來自DB)複製到第二個列表框。如果你想讓另一個列表框沒有連接到從數據庫獲得的值,你需要在放入第二個列表框之前創建它們的副本。
我做了這個簡單的程序:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
listBox1.SelectedIndexChanged += new EventHandler(listBox1_SelectedIndexChanged);
listBox1.Items.Add("1");
listBox1.Items.Add("2");
listBox1.Items.Add("3");
}
void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
listBox2.Items.Add(listBox1.SelectedItem);
}
}
和它的作品沒有任何問題。所以我認爲你的程序不起作用,因爲你的項目的類型是System.Data.DataRowView,不能轉換爲字符串。
private void CopySelItems(ListBox from, ListBox to)
{
for (int i = 0; i < from.SelectedItems.Count; i++)
{
to.Items.Add(from.SelectedItems[i].ToString());
}
}
這是一個列表框加載到另一個列表框,並在同一時間從SORCE列表框中
int mCount = ListBox1.Items.Count;
for (int i = 0; i <= mCount - 1; i++)
{
if (ListBox1.Items[i] == ListBox1.SelectedItem)
{
ListBox2.Items.Add(ListBox1.SelectedItem);
ListBox1.Items.Remove(ListBox1.SelectedItem);
mCount=mCount - 1;
i=i - 1;
}
}
我不刪除的數據有任何代碼聲明列表框中所有通過做最簡單的方法gui 但顯示成員是第一個列表框的.title。沒有做第二次,因爲我不希望它鏈接到數據庫 – Jenny 2010-03-13 15:23:19
@珍妮:看到更新的答案 – 2010-03-13 15:37:43