我在从下拉框中获取正确的值时出现问题。基本上我所拥有的是一个带有下拉列表的程序,该列表填充了保存在数据库表中的名称。用户从下拉框中选择一个名称,然后单击一个按钮以从数据库中删除该名称。我遇到的问题是,无论选择哪个名称,都会从下拉框中删除名字(索引为0)。未从下拉框中获取选定值
这使我相信,单击该按钮时,我不明白的SelectedIndex复位。
代码删除按钮:
protected void cmdDelete_Click(object sender, EventArgs e)
{
using (SqlConnection conn = new SqlConnection(@"Server=myname-PC\SQLEXPRESS;Database=dbNames;Trusted_Connection=True;"))
{
try
{
conn.Open();
SqlCommand comm = new SqlCommand("DELETE FROM Names WHERE [email protected] AND [email protected]", conn);
char[] delims = new char[1];
delims[0] = ' ';
//lblGreeting.Text = cblNames.
lblGreeting.Text = ddlNames.SelectedItem.Text;
string[] names = ddlNames.SelectedValue.ToString().Split(delims);
string fname = names[0];
string lname = names[1];
comm.Parameters.Add(new SqlParameter("@FirstName", fname));
comm.Parameters.Add(new SqlParameter("@LastName", lname));
comm.ExecuteNonQuery();
conn.Close();
LoadTable();
}
catch (Exception ex)
{
Response.Write("Delete Table: "+ex.ToString());
}
}
}
任何帮助表示赞赏。
我真的不知道,如果页面没有被渲染首次为什么会改变什么,我想这个函数做什么应该改变。它在点击按钮后被调用,并且应该在表再次呈现之前采取该值。我会包括可装入()的情况下,它可以帮助:
protected void LoadTable()
{
using (SqlConnection conn = new SqlConnection(@"Server=myname-PC\SQLEXPRESS;Database=dbNames;Trusted_Connection=True;"))
{
try
{
conn.Open();
using (SqlCommand comm = new SqlCommand("SELECT * FROM Names",conn))
{
SqlDataReader rd = comm.ExecuteReader();
string fname="";
string lname="";
ddlNames.Items.Clear();
while (rd.Read())
{
fname = rd.GetString(0);
lname = rd.GetString(1);
ddlNames.Items.Add(fname + " " + lname);
}
rd.Close();
}
}
catch (Exception ex)
{
Response.Write("Load Table: "+ex.ToString());
}
conn.Close();
}
}
其他两个功能:
protected void Page_Load(object sender, EventArgs e)
{
LoadTable();
}
protected void cmdAdd_Click(object sender, EventArgs e)
{
using (SqlConnection conn = new SqlConnection(@"Server=myname-PC\SQLEXPRESS;Database=dbNames;Trusted_Connection=True;"))
{
try
{
conn.Open();
char[] splits = new char[1];
splits[0] = ' ';
string fname = txtName.Text.Split(splits)[0];
string lname = txtName.Text.Split(splits)[1];
SqlCommand comm = new SqlCommand("INSERT INTO Names VALUES(@FirstName,@LastName)",conn);
comm.Parameters.Add("@FirstName", fname);
comm.Parameters.Add("@LastName", lname);
comm.ExecuteNonQuery();
conn.Close();
LoadTable();
}
catch(Exception ex)
{
Response.Write("Add Name: "+ex.ToString());
}
}
}
你打电话的地方在哪儿? – daryal 2012-03-27 06:05:10
这是Page_Load()函数中的唯一代码 – Mike 2012-03-27 06:08:44
您可以发布page_load函数吗? – daryal 2012-03-27 06:10:12