我試圖從GridView和數據庫中刪除的行... 如果delte的LinkButton被點擊GridView中的應刪除.. 我剛開行指標如下:刪除行從選擇GridView和數據庫
protected void LinkButton1_Click(object sender, EventArgs e)
{
LinkButton btn = (LinkButton)sender;
GridViewRow row = (GridViewRow)btn.NamingContainer;
if (row != null)
{
LinkButton LinkButton1 = (LinkButton)sender;
// Get reference to the row that hold the button
GridViewRow gvr = (GridViewRow)LinkButton1.NamingContainer;
// Get row index from the row
int rowIndex = gvr.RowIndex;
string str = rowIndex.ToString();
//string str = GridView1.DataKeys[row.RowIndex].Value.ToString();
RemoveData(str); //call the delete method
}
}
現在我想刪除它...所以我有這個代碼的問題..我得到一個錯誤
必須聲明標量變量「@original_MachineGroupName」 ...任何建議
private void RemoveData(string item)
{
SqlConnection conn = new SqlConnection(@"Data Source=JAGMIT-PC\SQLEXPRESS;
Initial Catalog=SumooHAgentDB;Integrated Security=True");
string sql = "DELETE FROM [MachineGroups] WHERE [MachineGroupID] =
@original_MachineGroupID;
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@original_MachineGroupID", item);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
塊引用
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:SumooHAgentDBConnectionString %>"
SelectCommand="SELECT MachineGroups.MachineGroupID, MachineGroups.MachineGroupName,
MachineGroups.MachineGroupDesc, MachineGroups.TimeAdded,
MachineGroups.CanBeDeleted, COUNT(Machines.MachineName) AS Expr1,
DATENAME(month, (MachineGroups.TimeAdded - 599266080000000000)/864000000000) +
SPACE(1) + DATENAME(d, (MachineGroups.TimeAdded - 599266080000000000)/
864000000000) +
', ' + DATENAME(year, (MachineGroups.TimeAdded - 599266080000000000)/
864000000000) AS Expr2 FROM MachineGroups FULL OUTER JOIN Machines ON
Machines.MachineGroupID = MachineGroups.MachineGroupID GROUP BY
MachineGroups.MachineGroupID, MachineGroups.MachineGroupName,
MachineGroups.MachineGroupDesc, MachineGroups.TimeAdded,
MachineGroups.CanBeDeleted"
DeleteCommand="DELETE FROM [MachineGroups] WHERE
[MachineGroupID] [email protected]_MachineGroupID" >
<DeleteParameters>
<asp:Parameter Name="@original_MachineGroupID" Type="Int16" />
<asp:Parameter Name="@original_MachineGroupName" Type="String" />
<asp:Parameter Name="@original_MachineGroupDesc" Type="String" />
<asp:Parameter Name="@original_CanBeDeleted" Type="Boolean" />
<asp:Parameter Name="@original_TimeAdded" Type="Int64" />
</DeleteParameters>
</asp:SqlDataSource>
我仍然得到一個錯誤:必須聲明標量變量 「@original_MachineGroupID
」
所以我需要通過所有的值像itemname,itemdesc等..單獨?? ??我只是將行號刪除.. 有沒有更簡單的方法來做到這一點.. 謝謝 – user175084 2009-10-05 17:25:43
那麼,您的刪除查詢是專門檢查這些事情。我的猜測是,如果沒有所有這些信息,行就無法被唯一標識。您必須簡化刪除查詢以僅需要該ID,否則您必須將所需的所有信息傳遞給它。 – womp 2009-10-05 18:04:40
我已經簡化了上面的刪除查詢..它不會刪除..這是刪除行的唯一方法...請幫助 – user175084 2009-10-05 18:06:37