【发布时间】:2011-03-24 07:55:02
【问题描述】:
我有一个下拉列表,我正在从 Excel 加载数据。 Excel 有 2 列产品和电子邮件。 Product 列中的数据绑定到 DataTextField,Email 列绑定到 DataValueField。 当不同产品的电子邮件不同但当电子邮件对不同产品具有相同值时,下拉菜单工作正常,然后无论我选择什么,在回发时,所选值都会更改为相同电子邮件值的第一项。
以下是 Excel 中的示例数据,用于显示下拉菜单的行为
示例 1。(此示例的下拉菜单效果很好)
产品电子邮件 iPad prashanth364@gmail.com iPhone 3G prashanth364@yahoo.co.in iPhone4 prashanth364@in.com示例 2。(在下面的示例中,无论我在回发时选择什么(iPad 或 iPhone 3G 或 iPhone4),下拉选择的值都是 iPad)
产品电子邮件 iPad prashanth364@gmail.com iPhone 3G prashanth364@gmail.com iPhone4 prashanth364@gmail.com示例 3。(在下面的示例中,当我选择 iPad 时,下拉菜单工作正常,但是当我在回发时选择 iPhone 3G 或 iPhone4 时,下拉选择的值将是 iPhone 3G。基本上,在此处选择 iPhone4 时,在回发时它显示的是 iPhone 3G)
产品电子邮件 iPad prashanth364@yahoo.co.in iPhone 3G prashanth364@gmail.com iPhone4 prashanth364@gmail.com下面是我将数据从 excel 加载到下拉列表的功能
private void ExtractFromExcelInitial()
{
// Put user code to initialize the page here
// Create connection string variable. Modify the "Data Source"
// parameter as appropriate for your environment.
string ExcelFilePath = Server.MapPath("~/ProductExcel") + "\\ProductEmail.xls";
String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + ExcelFilePath + ";" +
"Extended Properties=Excel 8.0;";
// Create connection object by using the preceding connection string.
OleDbConnection objConn = new OleDbConnection(sConnectionString);
// Open connection with the database.
objConn.Open();
// The code to follow uses a SQL SELECT command to display the data from the worksheet.
// Create new OleDbCommand to return data from worksheet.
OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [Sheet1$]", objConn);
// Create new OleDbDataAdapter that is used to build a DataSet
// based on the preceding SQL SELECT statement.
OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
// Pass the Select command to the adapter.
objAdapter1.SelectCommand = objCmdSelect;
// Create new DataSet to hold information from the worksheet.
DataSet objDataset1 = new DataSet();
// Fill the DataSet with the information from the worksheet.
objAdapter1.Fill(objDataset1, "XLData");
ddlProduct.DataTextField = "Product";
ddlProduct.DataValueField = "Emailid";
ddlProduct.DataSource = objDataset1.Tables[0];
ddlProduct.DataBind();
ddlProduct.Items.Insert(0, new ListItem("Select Product", "0"));
// Bind data to DataGrid control.
////DataGrid1.DataSource = objDataset1.Tables[0].DefaultView;
////DataGrid1.DataBind();
// Clean up objects.
objConn.Close();
}
请帮我解决这个问题,因为过去 3 天我一直坚持这个问题。
【问题讨论】: