有3个页面出现了输入字符串不正确错误
有点长,希望碰到过的大虾教一下。
下面是其中一个的错误信息:“/SimpleBBS”应用程序中的服务器错误。
--------------------------------------------------------------------------------输入字符串的格式不正确。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.FormatException: 输入字符串的格式不正确。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  堆栈跟踪: 
[FormatException: 输入字符串的格式不正确。]
   System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) +2753187
   System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +102
   System.String.System.IConvertible.ToInt32(IFormatProvider provider) +43
   System.Convert.ChangeType(Object value, TypeCode typeCode, IFormatProvider provider) +293
   System.Web.UI.WebControls.Parameter.GetValue(Object value, String defaultValue, TypeCode type, Boolean convertEmptyStringToNull, Boolean ignoreNullableTypeChanges) +257
   System.Web.UI.WebControls.Parameter.get_ParameterValue() +91
   System.Web.UI.WebControls.ParameterCollection.GetValues(HttpContext context, Control control) +284
   System.Web.UI.WebControls.SqlDataSourceView.InitializeParameters(DbCommand command, ParameterCollection parameters, IDictionary exclusionList) +344
   System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +1251
   System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +84
   System.Web.UI.WebControls.DataBoundControl.PerformSelect() +154
   System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +99
   System.Web.UI.WebControls.GridView.DataBind() +24
   System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +92
   System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +100
   System.Web.UI.Control.EnsureChildControls() +134
   System.Web.UI.Control.PreRenderRecursiveInternal() +109
   System.Web.UI.Control.PreRenderRecursiveInternal() +233
   System.Web.UI.Control.PreRenderRecursiveInternal() +233
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4434 
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版本:2.0.50727.210

解决方案 »

  1.   

    C#代码是这样的:
    using System;
    using System.Data;
    using System.Data.Common;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;public partial class SimpleVote_Vote_Info : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string strSql = "Select * from z_VoteInfo where Vote_ID='" + Request.QueryString["vid"].ToString() + "';";        //设置连接字符串
            string strConn = "Data Source=.;Initial Catalog=Vote;User ID=sa;Password=sa";        DbProviderFactory dbProviderFactory = DbProviderFactories.GetFactory("System.Data.SqlClient");
            DbConnection dbConn = dbProviderFactory.CreateConnection();
            dbConn.ConnectionString = strConn;
            dbConn.Open();        DbCommand dbComm = dbProviderFactory.CreateCommand();
            dbComm.Connection = dbConn;
            dbComm.CommandText = strSql;        DbDataAdapter adapter = dbProviderFactory.CreateDataAdapter();
            adapter.SelectCommand = dbComm;
            DataSet dsDataSet = new DataSet();
            adapter.Fill(dsDataSet,"table");
            DataTable dtTable = dsDataSet.Tables ["table"];        //显示相应数据
            this.lblTitle.Text = dtTable.Rows[0]["Vote_Title"].ToString();
            this.tbMsg.Text = dtTable.Rows[0]["Vote_Question"].ToString();
            if (dtTable.Rows[0]["Vote_IsValid"].ToString() == "0")
            {
                this.lblIsValid.Text = "不显示";
            }
            else
            {
                this.lblIsValid.Text = "显示";
            }
            this.lblChoices.Text = "一个人限投" + dtTable.Rows[0]["Vote_Choices"].ToString() + "票";
            this.lblPoint.Text = dtTable.Rows[0]["Vote_Point"].ToString();
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            Response .Redirect ("Vote_Modify.aspx?vid=" + Request.QueryString ["vid"].ToString ());
        }
      

  2.   

    你现在贴的代码看不出来是什么错误异常详细信息: System.FormatException: 输入字符串的格式不正确。又说是那一行么?
      

  3.   

    string strSql = "Select * from z_VoteInfo where Vote_ID='" + Request.QueryString["vid"].ToString() + "';";----------------------------  string strSql = "Select * from z_VoteInfo where Vote_ID='" + Request.QueryString["vid"].ToString() + "'";
      

  4.   

    改了看,SQL查询语句最后多了个分号在里面"';";。估计是这里了
      

  5.   

    谢谢提醒。我调试step into F11 :
    都通过了,就是Page_Load通过以后就显示不出了
    页面又变成
    异常详细信息: System.FormatException: 输入字符串的格式不正确。源错误:执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 
      

  6.   

    我想肯定不是我第一个遇到这个问题。
    我继续顶。遇到过解决过这个BUG的
    大虾来指教下。不会的也来顶顶,、
    一起学习。
      

  7.   

    int intID = Convert.ToInt32(Request.QueryString["vid"]);
    string strSql = "Select * from z_VoteInfo where Vote_ID="+intID+"";
      

  8.   

    我找到错误来源了:
    我试了把GridView1删除就没事了。
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:voteConnectionString %>"
                            SelectCommand="SELECT [VO_Text], [VO_Point] FROM [z_VoteOptions] WHERE ([Vote_ID] = @Vote_ID)">
    GridView1 的 DataSourceID="SqlDataSource1" 
    我想是 GridView1没有获得@Vote_ID这个参数,
    请问怎么手动代码输入这个参数。