Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用c从字符串中删除第一个字符#_C#_Asp.net_.net_Grid - Fatal编程技术网

C# 使用c从字符串中删除第一个字符#

C# 使用c从字符串中删除第一个字符#,c#,asp.net,.net,grid,C#,Asp.net,.net,Grid,我正在使用下面的代码删除我的网格行。我还需要删除$symbol,因为删除时会导致删除时出现问题。 我使用此代码将$sign替换为空格,但它没有任何帮助。有人能纠正我吗 string Dollar = Dollars.Text.ToString(); string dolreplace = Dollar.Substring(1, Dollar.Length - 1); 因此,我需要删除美元列中出现的美元符号 protected void Details_RowDeleting(object

我正在使用下面的代码删除我的网格行。我还需要删除$symbol,因为删除时会导致删除时出现问题。 我使用此代码将$sign替换为空格,但它没有任何帮助。有人能纠正我吗

 string Dollar = Dollars.Text.ToString();
 string dolreplace = Dollar.Substring(1, Dollar.Length - 1);
因此,我需要删除美元列中出现的美元符号

protected void Details_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
    Label ECode = (Label)Details.Rows[e.RowIndex].FindControl("lblCode");
    Label Dollars = (Label)Details.Rows[e.RowIndex].FindControl("lblDollars");
    string Dollar = Dollars.Text.ToString();
    string RemoveDollar = Dollar.Substring(1, Dollar.Length - 1);
    SqlConnection con = new SqlConnection(CS);
    con.Open();
     SqlCommand cmd = new SqlCommand("Delete from Application where Code= @Code and Dollar_Amount= @Dollars", con);
    cmd.Parameters.AddWithValue("@Code", Convert.ToDouble(Code.Text));
    cmd.Parameters.AddWithValue("@Dollars", Convert.ToInt32(RemoveDollar));
    cmd.ExecuteNonQuery();
    con.Close();
    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alert", "alert('Deleted successfully');", true);
    BindGrid();
}

问题:您正在将
标签转换/赋值为字符串变量

解决方案:您需要使用标签的
Text
属性将其值
(美元.Text)
分配到字符串变量中

解决方案1:

替换此项:

string Dollar = Dollars.ToString();
为此:

string Dollar = Dollars.Text.ToString();

解决方案2:如果要删除第一个字符,请使用
Substring()
函数

string Dollar = Dollars.Text.ToString();
string dolreplace = Dollar.Substring(1, Dollar.Length-1);
解决方案3:将双精度值和整数值括在单引号内。您只需要将字符串类型括在单引号内

您的查询可能受到
SQL注入攻击
。因此,我建议您使用
参数化查询
来避免它们

试试这个:

SqlCommand cmd = new SqlCommand("Delete from Application where Code= @Code and Yearly_Dollar_Amount= @DollarAmt", con);

cmd.Parameters.AddWithValue("@Code",Convert.ToDouble(Code.Text));
cmd.Parameters.AddWithValue("@DollarAmt",int.Parse(dolreplace,System.Globalization.CultureInfo.InvariantCulture));
cmd.ExecuteNonQuery();

是的,但我仍然无法根据我的条件删除该行。@user3279082:用
solution2
检查我编辑的答案,它确实没有发生。仍然无法删除网格中的行。@user3279082:如何验证它是否工作?调试它?如果没有,请调试并查看
dolereplace
varible的确切值。@user3279082:好的,这是另一回事,但您可以删除美元,那么告诉我数据库表中
code
doller
的数据类型是什么