【发布时间】:2015-08-21 13:20:09
【问题描述】:
我想调用该行的ID,因为我想删除该行。
这是我的代码:-
private void DeleteAttachment(string ID)
{
using (SqlConnection connection = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ToString()))
{
connection.Open();
string sql = "DELETE FROM EMP_ATTACHED_DOCUMENTS WHERE mkey= @ID";
using (SqlCommand cmd = new SqlCommand(sql, connection))
{
cmd.Parameters.AddWithValue("@ID", ID);
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
}
}
}
protected void GrdTraining_DeleteCommand(object sender, Obout.Grid.GridRecordEventArgs e)
{
if (Session["dt10"] != null)
{
dt10 = (DataTable)Session["dt10"];
}
else
{
BindDatatable();
}
DeleteAttachment(ID);
DataRow[] grdTrain = dt10.Select("SR_NO=" + Convert.ToString(e.Record["SR_NO"]));
dt10.Rows.Remove(grdTrain[0]);
AddToViewState("GrdTraining");
}
但我无法删除该行。当我尝试调试它时,在ID,我得到了_Page。
错误信息:
将数据类型 nvarchar 转换为数值时出错
请提出一种调用动态 ID 的方法。
【问题讨论】:
-
尝试使用显式类型添加而不是使用值添加。
-
将函数
DeleteAttachment参数更改为int。 -
阅读this
-
mkey列的具体数据类型是什么?你能显示hiddelmkey.Value的值吗?我只是猜测您正在使用整数,但也许您需要使用不同的数字类型。 -
听起来你应该使用
decimal.TryParse。如果它返回false,则string不是有效的十进制值。