编译器错误信息: 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;
}}
行 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;
}}
多了一个等号
{
case "17";
sqlTemp += " and 17";
break;
{
case "17":
sqlTemp += " and 17";
break;
case "34":
sqlTemp += " and 34";
break;
case "35":
sqlTemp += " and 35";
break;
case "36":
sqlTemp += " and 37";
break;
}
现在还出这个错.郁闷啊!编译器错误信息: CS0029: 无法将类型“int”隐式转换为“string”源错误: 行 39: switch (typeText)
行 40: {
行 41: case 1: "17";
行 42: sqlTemp += " and 17";
行 43: break;
源文件: e:\n\3CMarket\newsList.aspx.cs 行: 41
----->
case "17":其它的同理,如我上面所给的代码建议楼主还是先找一本讲基础语法的书看一下吧,现在这样使你得到了正确的结果,你也不知道是怎么一回事的
我现在按过客兄的做法做了,但又出现新错误.“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------第 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