这个问题困扰了我很久了。代码是从网上下过来的,试了一下。可以出现问题:红色字部分,跳错说“字符串格式错误”protected void FormView1_ItemCommand(object sender, FormViewCommandEventArgs e)
{
switch (e.CommandName.ToUpper())
{
case "DING":
Ding(true);
break;
case "CAI":
Ding(false);
break;
}
}
private void Ding(bool isDing)
{
string user;
//判断是否为匿名用户
if (User.Identity.AuthenticationType == "Forms" && User.Identity.IsAuthenticated)
{
user = User.Identity.Name;
}
else
{
user = Request.UserHostAddress;
}
SqlDataSource sqlds = new SqlDataSource();
sqlds.ConnectionString = ConfigurationManager.ConnectionStrings["cultureConnectionString"].ConnectionString;
sqlds.SelectCommand = string.Format("exec sp_Ding {0},'{1}',{2}",Request.QueryString["blogid"].ToString(),user,isDing ? "1" : "0");
DataView dv = sqlds.Select(DataSourceSelectArguments.Empty) as DataView;
if (dv[0][0].ToString() == "1")
{
(FormView1.FindControl("ltInfo") as Literal).Text = "谢谢支持";
Button btn = FormView1.FindControl(isDing ? "BtnDing" : "BtnCai") as Button;
//截取原来的顶或踩的次数,然后加1
int newDingCount = int.Parse(btn.Text.Substring(btn.Text.IndexOf("(")+1, btn.Text.IndexOf(")") - btn.Text.IndexOf("(") -1)) + 1;
//给按钮重新赋值
btn.Text = (isDing ? "顶一下(" : "踩一下(") + newDingCount + ")";
}
else if(dv[0][0].ToString() == "0")
{
(FormView1.FindControl("ltInfo") as Literal).Text = "你已进行过此操作";
}
}
{
switch (e.CommandName.ToUpper())
{
case "DING":
Ding(true);
break;
case "CAI":
Ding(false);
break;
}
}
private void Ding(bool isDing)
{
string user;
//判断是否为匿名用户
if (User.Identity.AuthenticationType == "Forms" && User.Identity.IsAuthenticated)
{
user = User.Identity.Name;
}
else
{
user = Request.UserHostAddress;
}
SqlDataSource sqlds = new SqlDataSource();
sqlds.ConnectionString = ConfigurationManager.ConnectionStrings["cultureConnectionString"].ConnectionString;
sqlds.SelectCommand = string.Format("exec sp_Ding {0},'{1}',{2}",Request.QueryString["blogid"].ToString(),user,isDing ? "1" : "0");
DataView dv = sqlds.Select(DataSourceSelectArguments.Empty) as DataView;
if (dv[0][0].ToString() == "1")
{
(FormView1.FindControl("ltInfo") as Literal).Text = "谢谢支持";
Button btn = FormView1.FindControl(isDing ? "BtnDing" : "BtnCai") as Button;
//截取原来的顶或踩的次数,然后加1
int newDingCount = int.Parse(btn.Text.Substring(btn.Text.IndexOf("(")+1, btn.Text.IndexOf(")") - btn.Text.IndexOf("(") -1)) + 1;
//给按钮重新赋值
btn.Text = (isDing ? "顶一下(" : "踩一下(") + newDingCount + ")";
}
else if(dv[0][0].ToString() == "0")
{
(FormView1.FindControl("ltInfo") as Literal).Text = "你已进行过此操作";
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货