索引和长度必须引用该字符串内的位置。参数名: length

yn011 2011-12-05 03:47:01

public partial class manage_editnews : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Session["username"] == null)
{
Response.Redirect("~/login.aspx");
}
if (!IsPostBack)
{
band();
bindgrid();
}
}
private void band()//---绑定dripdownlist控件数据,用于绑定新闻类型
{
SqlConnection con = conn.createconn();
con.Open();
string aa = "select typename from newstype";
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = new SqlCommand(aa, con);
DataSet ds = new DataSet();
sda.Fill(ds);
this.droptype.DataSource = ds;//绑定dripdownlist
this.droptype.DataTextField = "typename";
this.droptype.DataValueField = "typename";
this.droptype.DataBind();

}
private void bindgrid()
{
SqlConnection con = conn.createconn();//---绑定GridView1控件数据,用于绑定新闻类型
con.Open();
string aa = "select adid, adname, adsubject, adtype, adcontent, adhit, addata from news";
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = new SqlCommand(aa, con);
DataSet ds = new DataSet();
sda.Fill(ds);
this.GridView1.DataSource = ds;
this.GridView1.DataBind();
con.Close();
}

public string GetContent(string str)
{
int i = str.Length;
string substr =str.Substring(0,5)+"....";
//在这里出错:用户代码未处理ArgumentOutOfRangeException return substr ;
}

protected void btnedit_Click1(object sender, EventArgs e)
{
if(Convert.ToInt32(ViewState["adid"])==0)
{
Response.Write("<script>alert('你还没有选择要更新的数据!');</script>");
}
else
{
SqlConnection con = conn.createconn();
con.Open();
int aa = Convert.ToInt32(ViewState["adid"]);
string str = "select adid,adsubject,adtype,adcontent from news where adid=" + aa + " ";
SqlCommand cmd = new SqlCommand(str, con);
SqlDataReader rd = cmd.ExecuteReader();
if (rd.Read())
{
tsubject.Text = rd["adsubject"].ToString();
tcontent.Text = rd["adcontent"].ToString();
this.droptype.Text = rd["adtype"].ToString();
}
con.Close();
this.p1.Visible = true;
this.p2.Visible = false;
}

}

protected void btneditnew_Click(object sender, EventArgs e)
{
if (15 > Length(this.tcontent.Text))
{
Response.Write("<script>alert('新闻内容不能少于15个字符!');</script>");
}
else
{
SqlConnection con = conn.createconn();
con.Open();

int aa = Convert.ToInt32(ViewState["adid"]);
string str = "update news set adsubject = '" + this.tsubject.Text + "' ,adcontent= '" + tcontent.Text + "',adtype='" + this.droptype.SelectedValue + "',addata='" + DateTime.Now +"' where adid=" + aa + "";
SqlCommand cmd = new SqlCommand(str, con);
cmd.ExecuteNonQuery();
con.Close();
bindgrid();
Response.Write("<script>alert('更新成功!');</script>");
this.p2.Visible = true;
this.p1.Visible = false;
}
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
int aa = Convert.ToInt32(this.GridView1.SelectedRow.Cells[0].Text);
ViewState["adid"] = aa;

}
protected void btndelt_Click1(object sender, EventArgs e)
{
if (Convert.ToInt32(ViewState["adid"]) == 0)
{
Response.Write("<script>alert('你还没有选择要删除的数据!');</script>");
}
else
{
btndelt.Attributes.Add("onClick", "javascript:return confirm('确定删除吗?');");
//Response.write("<script>return confirm('是否要删除此记录')</script>");
SqlConnection con = conn.createconn();
con.Open();
// string str = "delete from news where adid=" + Convert.ToInt32(DataGrid1.SelectedItem.Cells[0].Text) + " ";
int aa = Convert.ToInt32(ViewState["adid"]);
string str = "delete from news where adid=" + aa + "";
SqlCommand cmd = new SqlCommand(str, con);
cmd.ExecuteNonQuery();
con.Close();
bindgrid();
}
}

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
this.GridView1.PageIndex = e.NewPageIndex;
bindgrid();

}
protected void btncannle_Click(object sender, EventArgs e)
{
this.p2.Visible = true;
this.p1.Visible = false;
}
public int Length(string str)
{
int length = str.Length;
//用户验证控件
Regex RegCHZN = new Regex("[\u4e00-\u9fa5]");
foreach (char c in str)
{
Match m = RegCHZN.Match(c.ToString());
if (m.Success)
{
length++;
}
}
return length;
}
}

...全文
5627 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yn011 2011-12-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 return_false 的回复:]
C# code

public string GetContent(string str)
{
string substr = string.Empty;
int i = str.Length;
if (!string.IsNullOrEmpty(str))
{
……
[/Quote]
问题解决了,谢谢!
机器人 2011-12-05
  • 打赏
  • 举报
回复
。。。。 连 index 越界都搞不定么? 5 > Length 啦
全国话费充值 2011-12-05
  • 打赏
  • 举报
回复
str的长度少于你的str.Substring(0,5),所以要报错.你的str长度必须>=5,Substring才不会报错
zorro911 2011-12-05
  • 打赏
  • 举报
回复
public string GetContent(string str)
{
 int i = str.Length;
 string substr = str;
 if(i > 5)
 {
  string substr =str.Substring(0,5)+"....";
 }
 return substr;
}
  • 打赏
  • 举报
回复
  public string GetContent(string str)
{
string substr = string.Empty;
int i = str.Length;
if (!string.IsNullOrEmpty(str))
{
if (i > 5)
{
substr = str.Substring(0, 5) + "....";
}
else
{
substr = str;
}
}
return substr ;
}
yn011 2011-12-05
  • 打赏
  • 举报
回复
string substr =str.Substring(0,5)+"....";
//在这里出错:用户代码未处理ArgumentOutOfRangeException
"索引和长度必须引用该字符串内的位置。参数名: length“ 为什么出现这个错误,请教高手!
全国话费充值 2011-12-05
  • 打赏
  • 举报
回复
int i = str.Length;
if(i>=5) string substr =str.Substring(0,5)+"....";

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧