我在從下拉框中獲取正確的值時出現問題。基本上我所擁有的是一個帶有下拉列表的程序,該列表填充了保存在數據庫表中的名稱。用戶從下拉框中選擇一個名稱,然後單擊一個按鈕以從數據庫中刪除該名稱。我遇到的問題是,無論選擇哪個名稱,都會從下拉框中刪除名字(索引爲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