编译器错误信息: CS0029: 无法将类型“int”隐式转换为“string”源错误: 行 39:         switch (typeText)
行 40:         {
行 41:             case 1: typeText == 17;
行 42:                 sqlTemp += " and 17";
行 43:                 break;
 源文件: e:\n\3CMarket\newsList.aspx.cs    行: 41 发生错误的.cs页代码如下:
using System;
using System.Data;
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;
using System.Data.SqlClient;public partial class newsList : System.Web.UI.Page
{
    string sqlTemp = "Where 1=1";
         //string typeText = Convert.ToInt16(Request.QueryString["TypeID"]);
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["tontelConn"].ToString());
    protected void Page_Load(object sender, EventArgs e)
    {
        string typeText = Request.QueryString["TypeID"].ToString();
        SqlDataAdapter sda = new SqlDataAdapter("Select ID,Title,Type,CreateDate From TC_News Where Type= '"+typeText+"'  Order By CreateDate Desc", conn);
        DataSet ds = new DataSet();
        sda.Fill(ds);
        Repeater1.DataSource = ds.Tables[0];
        //以下部分到 this.DataBind(sqlTemp)有问题.我的想法是:当获取不同的URL参数就会显示相应类型的新闻.
        //if(typeText=="17")
        //{ sqlTemp += " and 17"; }
        //if(typeText=="34")
        //{ sqlTemp += " and 34"; }
        //if (typeText == "35")
        //{ sqlTemp += " and 35"; }
        //if(typeText=="36")
        //{ sqlTemp += " and 36"; }
        //if (typeText == "37")
        //{ sqlTemp += " and 37"; }        switch (typeText)
        {
            case 1: typeText = 17;
                sqlTemp += " and 17";
                break;
            case 2: typeText = 34;
                sqlTemp += " and 34";
                break;
            case 3: typeText = 35;
                sqlTemp += " and 35";
                break;
            case 4: typeText = 36;
                sqlTemp += " and 37";
                break;
        }        this.DataBind(sqlTemp);//可以加入" where a=b ..." 条件
        sda.Dispose();
        ds.Dispose();
        conn.Close();
    }
    void DataBind(string tmpSql)
    {
        pagination.DBControl = Repeater1;
        pagination.SqlConn = conn;
        pagination.SqlString = "Select * From TC_News" + tmpSql + " Order By CreateDate Desc";
        pagination.SqlRecordCountString = "Select Count(*) From TC_News " + tmpSql;
    }}

解决方案 »

  1.   

    typeText = 17;
    多了一个等号
      

  2.   

    typeText是什么类型,如果是string类型的,这样试下switch (typeText)
    {
        case "17";
        sqlTemp += " and 17";
        break;
      

  3.   

    string typeText怎么能和1来比较
      

  4.   

    整个switch都要改下            switch (typeText)
                {
                    case "17":
                        sqlTemp += " and 17";
                        break;
                    case "34":
                        sqlTemp += " and 34";
                        break;
                    case "35":
                        sqlTemp += " and 35";
                        break;
                    case "36":
                        sqlTemp += " and 37";
                        break;
                }
      

  5.   

    现在按"lxcnn(过客)"大哥的改了.
    现在还出这个错.郁闷啊!编译器错误信息: CS0029: 无法将类型“int”隐式转换为“string”源错误: 行 39:         switch (typeText)
    行 40:         {
    行 41:             case 1: "17";
    行 42:                 sqlTemp += " and 17";
    行 43:                 break;
     源文件: e:\n\3CMarket\newsList.aspx.cs    行: 41
      

  6.   

    case 1: "17";
    ----->
    case "17":其它的同理,如我上面所给的代码建议楼主还是先找一本讲基础语法的书看一下吧,现在这样使你得到了正确的结果,你也不知道是怎么一回事的
      

  7.   

    ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_csref/html/44bae8b8-8841-4d85-826b-8a94277daecb.htm
      

  8.   

    谢谢指点,我现在正在学习.
    我现在按过客兄的做法做了,但又出现新错误.“/”应用程序中的服务器错误。
    --------------------------------------------------------------------------------第 1 行: '17' 附近有语法错误。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 第 1 行: '17' 附近有语法错误。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  堆栈跟踪: 
    [SqlException (0x80131904): 第 1 行: '17' 附近有语法错误。]
       System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +857370
       System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +734982
       System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +188
       System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1838
       System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +31
       System.Data.SqlClient.SqlDataReader.get_MetaData() +62
       System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +297
       System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +886
       System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +132
       System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +32
       System.Data.SqlClient.SqlCommand.ExecuteScalar() +137
       UHDisPage.UhDisPageRepeaterPost.GetRecordCount() +117
       UHDisPage.UhDisPageRepeaterPost.OnLoad(EventArgs e) +106
       System.Web.UI.Control.LoadRecursive() +47
       System.Web.UI.Control.LoadRecursive() +131
       System.Web.UI.Control.LoadRecursive() +131
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1061 
    --------------------------------------------------------------------------------
    版本信息: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版本:2.0.50727.210