我有一個從數據庫中提取信息並填充行的列表。列表項刪除不工作C#
我終於擺脫了錯誤,我找不到控件,但刪除按鈕運行不正常,頁面重新加載但不對數據庫執行任何操作。
我的想法是,列表項本身並不需要被刪除,因爲列表是在從數據庫加載頁面時填充的,包括回發,所以它不會通過刪除的行。
有人能指出我錯誤的方向嗎?
編輯
正如指出下面我通過刪除更改了的GetData()函數的使用:
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
DataSet ds = new DataSet();
sda.Fill(ds);
return ds;
}
然而ASP列表視圖的下面片段不被帶回到theeLbl.Text被用作主要問題的控制ID。
<asp:ListView ID="List1" runat="server" GroupItemCount="3" GroupPlaceholderID="gph1" ItemPlaceholderID="iph1">
<ItemTemplate>
<tr>
<td>
<asp:Label ID="uCompanylbl" runat="server" Text='<%# Eval("uCompanyId")%>'></asp:Label>
</td>
C#代碼:
protected void deleteBtn_Click(object sender, EventArgs e)
{
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalConnection"].ConnectionString))
{
string query = @"DELETE FROM EndUser WHERE @someId = EndUser.uCompanyID;
DELETE FROM Company WHERE @someId = Company.Id;
DELETE FROM BAD WHERE @someId = BAD.Id;";
using (SqlCommand cmd = new SqlCommand(query, con))
{
int deleted = 0;
try
{
var theLbl = this.List1.FindControl("uCompanylbl") as Label;
cmd.Parameters.AddWithValue("@someId", theLbl.Text);
con.Open(); ;
deleted = cmd.ExecuteNonQuery();
}
catch(Exception er)
{
Console.WriteLine(er.ToString());
}
}
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
List1.DataSource = this.GetData();
List1.DataBind();
}
}
private DataSet GetData()
{
// add connection code for error handling
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalConnection"].ConnectionString))
{
using (SqlCommand cmd = new SqlCommand("SelectProc", con))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataSet ds = new DataSet())
{
sda.Fill(ds);
return ds;
}
}
}
}
}
刪除按鈕事件之後你沒有重新綁定您的名單? –
刪除使用DataSet ds,然後將工作 – renefc3