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_MachineGroupName 매개 변수를 추가하지 않는 "@original_MachineGroupID
"
그래서 itemname, itemdesc 등 모든 값을 전달해야합니다. 개별적으로 ?? 나는 단지 행 번호를 삭제하려고합니다. 더 쉬운 방법이 있습니까? 감사합니다. – user175084
글쎄, 삭제 쿼리는 이러한 것들을 특별히 검사하고 있습니다. 내 추측으로는 행이이 모든 정보 없이는 고유하게 식별 될 수 없다는 것입니다. ID 만 필요하면 삭제 쿼리를 단순화해야하며, 그렇지 않으면 필요한 모든 정보를 전달해야합니다. – womp
나는 위와 같이 삭제 쿼리를 단순화했다. stll이 삭제되지 않는다. 행을 삭제하는 유일한 방법이다 ... – user175084