如题,将 nvarchar 值 'A22' 转换为数据类型为 int 的列时发生语法错误。
我是用存储过程的,但是我不知道出了什么问题???
希望大家帮帮手

解决方案 »

  1.   

    ALTER PROCEDURE Addcheng (

    @课程名称 nvarchar(30),
    @开课学院 nvarchar(40),
    @任课教师 nvarchar(8),
    @提供专业 nvarchar(500),
    @提供年级 nvarchar(50),
    @上课时间 nvarchar(16),
    @学时 nvarchar(4),
    @上课地点 nvarchar(30),
    @学科学分 nvarchar(8),
    @审核状态 nvarchar(2),
    @最多可选修人数 nvarchar(4),
    @课程简介 nvarchar(400),
    @教师编号 nvarchar(12),
    @UserID int OUTPUT
    )


    AS
    INSERT INTO 课程
    (

    课程名称, 
    开课学院,
    任课教师, 
    提供专业, 
    提供年级,
    上课时间, 
    学时, 
    学科学分, 
    审核状态,
    最多可选修人数, 
    上课地点,
    课程简介,
    教师编号
    )
    VALUES
    (

    @课程名称, 
    @开课学院,
    @任课教师,
    @提供专业, 
    @提供年级, 
    @上课时间, 
    @学时,
    @学科学分, 
    @审核状态, 
    @上课地点,
    @最多可选修人数, 
    @课程简介, 
    @教师编号
    )
    SELECT
    @UserID=@@Identity

      

  2.   

    @UserID int OUTPUT 
    改成@UserID nvarchar OUTPUT 
    试试
      

  3.   

    请教高手??出了什么问题啊??我那个A22是输入到上课地点那个TEXTBOX的
      

  4.   

    没看明白。A22是字符串怎么转int 等高手
      

  5.   

     string sql = string.Format("select * from t_User_QyTp where QyDm={0}",this.Request.QueryString["QyDm"]);// Session["QyDm"].ToString().Trim()
             //string sql = string.Format("select QyDm from t_User_QyTp where  QyDm='L17899318'");
             DbDataReader dr = dbSys.ExecuteReader(sql);        
             if (dr.Read())
             {
                 
                 string imageur = dr["TpFileName"].ToString().Trim();
                 this.Image1.ImageUrl = "~/UserFiles/qytp/" + imageur;
                 Label1.Text = dr["Title"].ToString().Trim();
                 dr.Close();
             }
    我出现了相同错误!!
    将 nvarchar 值 'L17899318' 转换为数据类型为 int 的列时发生语法错误。