我有一个DropDownList,我想选择一个ID和它的名字两次,把它放到DataSet
并绑定到DropDownList
。下面的代码是我的数据绑定。DropDownList选择不正确的值
using (SqlConnection conn1 = new SqlConnection(ConfigurationManager.ConnectionStrings["SFGSConnectionString1"].ConnectionString))
{
string selectQuery1 = "SELECT [profileID], [profileName], [positionID], [positionName] from vw_profile WHERE [email protected]";
SqlCommand cmd1 = new SqlCommand(selectQuery1, conn1);
cmd1.Parameters.AddWithValue("@memberID", memberID);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd1;
DataSet ds = new DataSet();
conn1.Open();
da.Fill(ds);
conn1.Close();
chooseProfile.DataSource = ds;
chooseProfile.DataTextField = "profileName";
chooseProfile.DataValueField = "profileID";
chooseProfile.DataBind();
choosePosition.DataSource = ds;
choosePosition.DataTextField = "positionName";
choosePosition.DataValueField = "positionID";
choosePosition.DataBind();
}
在我的ASP.NET页面上,当用户点击Submit时,它意味着获取值并插入到表中。
protected void submitReport_Click(object sender, EventArgs e)
{
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SFGSConnectionString1"].ConnectionString))
{
string selectQuery = "SELECT * FROM vw_profile";
SqlCommand cmd = new SqlCommand(selectQuery, conn);
conn.Open();
SqlDataReader viewReader;
viewReader = cmd.ExecuteReader();
while (viewReader.Read())
{
var memberID = (string)viewReader["memberID"].ToString();
using (SqlConnection conn1 = new SqlConnection(ConfigurationManager.ConnectionStrings["SFGSConnectionString1"].ConnectionString))
{
string selectQuery1 = "SELECT * from vw_profile WHERE [email protected]";
SqlCommand cmd1 = new SqlCommand(selectQuery1, conn);
cmd1.Parameters.AddWithValue("@memberID", memberID);
conn1.Open();
int submitProfileID = Convert.ToInt32(chooseProfile.SelectedItem.Value);
int submitPositionID = Convert.ToInt32(choosePosition.SelectedItem.Value);
DateTime dateTime = DateTime.Now;
string date = dateTime.GetDateTimeFormats('d')[0];
int reportNum;
reportNum = Convert.ToInt32(viewReader["reportNumber"]);
reportNum++;
string reportTitle = "#" + reportNum + " - " + date;
SqlConnection conn2 = new SqlConnection(ConfigurationManager.ConnectionStrings["SFGSConnectionString1"].ConnectionString);
conn2.Open();
SqlCommand cmd2 = new SqlCommand("INSERT INTO sfgs_reports(profileID,memberID,positionID,reportTitle,reportContent,reportDateStamp,reportNumber) values (@profileID,@memberID,@positionID,@reportTitle,@content,@datestamp,@reportNumber)", conn2);
cmd2.Parameters.AddWithValue("@content", reportContent.Text);
cmd2.Parameters.AddWithValue("@memberID", memberID);
cmd2.Parameters.AddWithValue("@profileID", submitProfileID);
cmd2.Parameters.AddWithValue("@positionID", submitPositionID);
cmd2.Parameters.AddWithValue("@reportTitle", reportTitle);
cmd2.Parameters.AddWithValue("@datestamp", dateTime);
cmd2.Parameters.AddWithValue("@reportNumber", reportNum);
cmd2.ExecuteNonQuery();
conn2.Close();
}
}
conn.Close();
}
}
现在是什么时候有人提出的情况是,而不是抓住从一个我选择Value
,它抓住了默认值,在默认情况下,DropDownList
显示的一个。任何人都可以看到这个代码中可能导致此错误的任何错误?
编辑,显示更新submitReport_Click方法:
protected void submitReport_Click(object sender, EventArgs e)
{
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SFGSConnectionString1"].ConnectionString))
{
string selectQuery = "SELECT * FROM vw_profile WHERE [email protected]";
SqlCommand cmd = new SqlCommand(selectQuery, conn);
cmd.Parameters.AddWithValue("@currentUser", User.Identity.Name);
conn.Open();
SqlDataReader viewReader;
viewReader = cmd.ExecuteReader();
while (viewReader.Read())
{
var memberID = (string)viewReader["memberID"].ToString();
if (!Page.IsPostBack)
{
using (SqlConnection conn1 = new SqlConnection(ConfigurationManager.ConnectionStrings["SFGSConnectionString1"].ConnectionString))
{
string selectQuery1 = "SELECT [profileID], [profileName], [positionID], [positionName] from vw_profile WHERE [email protected]";
SqlCommand cmd1 = new SqlCommand(selectQuery1, conn1);
cmd1.Parameters.AddWithValue("@memberID", memberID);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd1;
DataSet ds = new DataSet();
conn1.Open();
da.Fill(ds);
conn1.Close();
chooseProfile.DataSource = ds;
chooseProfile.DataTextField = "profileName";
chooseProfile.DataValueField = "profileID";
chooseProfile.DataBind();
choosePosition.DataSource = ds;
choosePosition.DataTextField = "positionName";
choosePosition.DataValueField = "positionID";
choosePosition.DataBind();
}
}
using (SqlConnection conn1 = new SqlConnection(ConfigurationManager.ConnectionStrings["SFGSConnectionString1"].ConnectionString))
{
string selectQuery1 = "SELECT * from vw_profile WHERE [email protected]";
SqlCommand cmd1 = new SqlCommand(selectQuery1, conn);
cmd1.Parameters.AddWithValue("@memberID", memberID);
conn1.Open();
int submitProfileID = Convert.ToInt32(chooseProfile.SelectedItem.Value);
int submitPositionID = Convert.ToInt32(choosePosition.SelectedItem.Value);
DateTime dateTime = DateTime.Now;
string date = dateTime.GetDateTimeFormats('d')[0];
int reportNum = 1;
string reportTitle = "#" + reportNum + " - " + date;
SqlConnection conn2 = new SqlConnection(ConfigurationManager.ConnectionStrings["SFGSConnectionString1"].ConnectionString);
conn2.Open();
SqlCommand cmd2 = new SqlCommand("INSERT INTO sfgs_reports(profileID,memberID,positionID,reportTitle,reportContent,reportDateStamp,reportNumber) values (@profileID,@memberID,@positionID,@reportTitle,@content,@datestamp,@reportNumber)", conn2);
cmd2.Parameters.AddWithValue("@content", reportContent.Text);
cmd2.Parameters.AddWithValue("@memberID", memberID);
cmd2.Parameters.AddWithValue("@profileID", submitProfileID);
cmd2.Parameters.AddWithValue("@positionID", submitPositionID);
cmd2.Parameters.AddWithValue("@reportTitle", reportTitle);
cmd2.Parameters.AddWithValue("@datestamp", dateTime);
cmd2.Parameters.AddWithValue("@reportNumber", reportNum);
cmd2.ExecuteNonQuery();
conn2.Close();
Page.Response.Redirect("default.aspx?ResponseCode=3", false);
}
}
conn.Close();
}
}
即使你绑定你的下拉? –
对不起,你不是很确定你的意思。代码的顶部框在我的Page_Load中,然后我有一个提交按钮单击方法来获取该值并将它和其他信息插入到表中。 – Trido
什么是选择配置文件?下拉列表 ? – mck