获取数据绑定组合框的选定值 [英] Getting selected value of databound combobox
问题描述
在这里,我正在使用dataAdpaters和Dataset表将数据从数据库加载到CboPorts ComboBox.这部分没有问题
Here I am loading data to the CboPorts ComboBox from a database using dataAdpaters and Dataset table. This part works with no problems
public void LoadPorts(string portpath)
{
//Loads Existing ClientGroups from specified tables
string tablename = portpath;
SqlConnection sqlConnectionCmdString = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Rick\Documents\Visual Studio 2010\Projects\Server\database\ClientRegit.mdf;Integrated Security=True;User Instance=True");
//Properly Defines the string for naming the table according to the systems naming scheme
string Command = "SELECT Port FROM [" + tablename + "]";
SqlCommand sqlCommand = new SqlCommand(Command, sqlConnectionCmdString);
SqlDataAdapter objDA = new SqlDataAdapter(sqlCommand);
DataSet dsGroups = new DataSet();
objDA.Fill(dsGroups, "dtGroup");
cboPorts.DataSource = dsGroups.Tables["dtGroup"];
cboPorts.DisplayMember = "Port";
cboPorts.ValueMember = "Port";
}
这是我尝试使用CboPorts.SelectedItem.Tostring()方法解析CboPorts ComboBox的地方,它会不断以Null的形式返回到DataView = {System.Data.DataRowView}. -感觉
This is where I am trying to parse the CboPorts ComboBox, using the CboPorts.SelectedItem.Tostring() Method it keeps coming back with Null do to DataView = {System.Data.DataRowView} This keep coming in the Debugger Value Intel-Sense
private void cboPorts_SelectedIndexChanged(object sender, EventArgs e)
{
string xmlpath = @"C:\[...]" + cboNetGuid.SelectedItem.ToString() + ".xml";
XElement main = XElement.Load(xmlpath);
//This is where it's supposed to parse the Selected Item of the combo box
string SelectedPort = cboPorts.SelectedItem.ToString();
//Linq query for searching IP address by ID Attributes
IEnumerable<XElement> searched =
from ip in main.XPathSelectElements("Row/ip_addresses")
where (string)ip.Attribute("id") == SelectedPort //<--Passes the Value Here
select ip;
//Get the Ip from the selected port number
foreach (string ips in searched)
{
Network_IP = ips.ToString();
}
//Linq Query to assign attributes to xml server data file
IEnumerable<XElement> SearchedAttr =
from proto in main.XPathSelectElements("Row/protocols")
where (string)proto.Attribute("id") == SelectedPort
select proto;
foreach (string protos in SearchedAttr)
{
lstproto = protos.ToString();
}
//Linq query for searching security requests
IEnumerable<XElement> SearchedSec =
from Secure in main.XPathSelectElements("Row/security")
where (string)Secure.Attribute("id") == SelectedPort
select Secure;
foreach (string Secur in SearchedSec)
{
Security = Secur.ToString();
}
//Linq query for searching created dates
IEnumerable<XElement> SearchedCret =
from created in main.XPathSelectElements("Row/creation_date ")
where (string)created.Attribute("id") == SelectedPort
select created;
foreach (string Cret in SearchedCret)
{
Created = Cret.ToString();
}
//Define Channeling Form for Log Synchronizations
//Adds the data to the form
cboIP.Items.Add(Network_IP);
cboIP.SelectedIndex = 0;
cboProtocols.Items.Add(lstproto);
cboProtocols.SelectedIndex = 0;
if (Security == "YES")
{
cboEncrypt.SelectedIndex = 0;
}
else if (Security == "NO")
{
cboEncrypt.SelectedIndex = 1;
}
}
我有一个奇怪的Visual Studio Express错误,我不确定正在发生什么,但是应该可以,我不确定为什么,但是我将在代码中进行解释.我不确定是否还有其他方法可以处理这种方法.
I am having a weird Visual Studio Express Bug, I am not sure what is going on but this is supposed to be working, I am not sure why but I will explain in my code. I am not sure if there is another way to handle this method.
推荐答案
我发现Guys非常感谢,如果您想在代码中执行此操作,那么这就是方法.
I found Guys thanks, If you ever want to do this in your code this is how to do it.
DataRowView drow = (DataRowView)cboPorts.SelectedItem;
SelectedPort = drow.Row.ItemArray[0].ToString();
这篇关于获取数据绑定组合框的选定值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!