正在删除我的字符串ID上的行
本文关键字:ID 字符串 删除 我的 | 更新日期: 2023-09-27 18:00:59
我有这个gv_Storagepricing_RowDeleting
方法
protected void gv_Storagepricing_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string result = null;
storageprice ss = new storageprice();
string categoryID = gv_Storagepricing.DataKeys[e.RowIndex].Value.ToString();
result = ss.StoragePricingDelete(categoryID);
}
这是StoragePricingDelete
方法的代码
public string StoragePricingDelete(string ID)
{
string queryStr = "DELETE FROM StoragePricing WHERE Pricing_ID = @ID";
SqlConnection conn = new SqlConnection(connStr);
SqlCommand cmd = new SqlCommand(queryStr, conn);
cmd.Parameters.AddWithValue("@ID", ID);
conn.Open();
int nofRow = 0;
nofRow = cmd.ExecuteNonQuery();
conn.Close();
return nofRow;
}
错误状态
无法将类型"int"隐式转换为"string">
我真的是个新手。
错误告诉您,您没有按照预期调用StoragePricingDelete
方法。
要调用一个方法,您需要在最后使用()
编写方法调用,并且可能在方括号之间使用一些参数,就像您的情况一样。
如果没有括号,您将尝试将对该方法的引用传递给int
变量(显然无效(,而不是调用该方法并将该方法的返回值分配给您的变量。
在这种情况下,您需要调用这样的方法:
result = ss.StoragePricingDelete("pricing id value goes here");
您必须在括号之间传递定价id参数。不确定它的正确值是多少,你必须弄清楚。
看看下面的StoragePricingDelete
方法代码
public string StoragePricingDelete(string ID)
{
string queryStr = "DELETE FROM StoragePricing WHERE Pricing_ID = @ID";
SqlConnection conn = new SqlConnection(connStr);
SqlCommand cmd = new SqlCommand(queryStr, conn);
cmd.Parameters.AddWithValue("@ID", ID);
conn.Open();
int nofRow = 0;
nofRow = cmd.ExecuteNonQuery();
conn.Close();
return nofRow;
}
当你有这个
public string StoragePricingDelete(string ID)
您告诉编译器StoragePricingDelete
返回string
,但是您返回的是nofRow
int nofRow = 0;
nofRow = cmd.ExecuteNonQuery();
conn.Close();
return nofRow;
这显然是一个int
,所以这就是你得到错误的原因。您可以通过以下返回nofRow.ToString()
来修复错误
public string StoragePricingDelete(string ID)
{
string queryStr = "DELETE FROM StoragePricing WHERE Pricing_ID = @ID";
SqlConnection conn = new SqlConnection(connStr);
SqlCommand cmd = new SqlCommand(queryStr, conn);
cmd.Parameters.AddWithValue("@ID", ID);
conn.Open();
int nofRow = 0;
nofRow = cmd.ExecuteNonQuery();
conn.Close();
return nofRow.ToString();
}
我打赌您还不能运行调试,因为这行代码:return nofRow;
因为它应该是return nofRow.ToString();