代码如下,不明白C#干嘛喜欢把东西转来转去的,事项一次觉得技术先进吗?!!!!!!!
public partial class TrainManage_Train_TrainRecord : System.Web.UI.Page
{
     private int xT_ID = "sid";//培训ID  报错这一句无法将类型“string”隐式转换为“int”
    private string DutySql = "select a.P_ID,a.P_NAME, case a.P_SEX when 0 then '男' when 1 then '女' when 2 then '未知'end as P_SEX ,a.P_DEPARTMENT,c.RP_RESULT,c.RP_PEROSN_ID,c.RP_TRAIN_ID,b.T_ID,b.T_NAME,b.T_START_TIME,b.T_OVER_TIME,d.INFO_ID,d.INFO_NAME from RS_Person a,RS_TRAIN b,RS_TRAIN_PERSON c, RS_D_INFOMATION d where a.P_ID = c.RP_PEROSN_ID and b.T_ID = c.RP_TRAIN_ID and d.INFO_ID=a.P_DEPARTMENT and b.T_ID='xT_ID' ";//这句SQL语句查处3表里的数据。    private class _Notice
    {
        public static string RecordCount;
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
          
            //int xID = Convert.ToInt32(Request.QueryString["id"]);             //int id = Int32.Parse(this.Request.QueryString["id"]);//编号
             int sid = Int32.Parse(this.Request.QueryString["id"].ToString()); 
            Response.Write(sid);
这里可以得出 sid的值   得出为8   而且我觉得这里已经  int 了。。哪里也没看到类型“string”隐式  这都什么跟什么错啊。

解决方案 »

  1.   

    private int xT_ID = "sid";
    你这样写没有问题?你要初始化值,你可以写成private int xT_ID = 0;啊
      

  2.   

     private int xT_ID = "sid";//培训ID  报错这一句无法将类型“string”隐式转换为“int” "sid" 是string类型,这里报错.
    改成private int xT_ID =0;
      

  3.   

    因为C#是强类型的
    private int xT_ID = "sid";
    这个错太显见了吧
    ""是字符串啊
    private int xT_ID=sid
      

  4.   

     private int xT_ID = "sid";//培训ID  报错这一句无法将类型“string”隐式转换为“int” 
    当然不对啊,你不可以直接将string型的值赋给int型变量啊
      

  5.   

    private int xT_ID = sid;//培训ID  去掉后报错说非静态变量。。等错误,你们能不能看出我贴的那段带那有什么错误啊。不一定是找某一行,而是整段代码该怎么写》?
    就是从另一个页面得到一个id  然后搜索数据库,这么简单的东西。
      

  6.   


    1.对xT_ID的赋值应该为
       private int xT_ID=sid;2.如果表RS_TRAIN中列T_ID的类型是字符,在DutySql中条件b.T_ID应写为" ... Where ... b.T_ID='"+xT_ID.ToString()+"'";3.如果表RS_TRAIN中列T_ID的类型是数字,在DutySql中条件b.T_ID应写为" ... Where ... b.T_ID="+xT_ID.ToString();