帮忙看看哪里错了。
            String sql = "insert into @tableName (@file) values (@value)";
            SqlConnection conn = new SqlConnection();
            conn.ConnectionString = ConfigurationManager.ConnectionStrings["ChemConnectionStr"].ConnectionString;
            conn.Open();
            SqlCommand cmd = new SqlCommand(sql, conn);
            SqlParameter[] parms = new SqlParameter[] {
                    new SqlParameter("@tableName", SqlDbType.NVarChar, 50),
                    new SqlParameter("@file", SqlDbType.NVarChar, 200),
                    new SqlParameter("@value", SqlDbType.NVarChar, 4000)};            parms[0].Value = "WebClass";
            parms[1].Value = "WebClassID, WebName, WebUrl, WebTarget, WebOrderNum, WebTn, WebTj, WebTs";
            parms[2].Value = "'1969378192', '产品管理', 'Products', 'main', 20, '952588025', 0, '952588025,1969378192,'";
            foreach (SqlParameter parm in parms)
                cmd.Parameters.Add(parm);
            int Num = cmd.ExecuteNonQuery();
            conn.Close();

解决方案 »

  1.   


            String sql = "exec ('insert into ' + @tableName + '(' + @file ') values (' + @value + ')')";
      

  2.   

    你用数据库跟踪一下,查看这样执行的sql语句是否有问题。
      

  3.   

    insert into 表名(列名) values(值)
    是固定写法,以上的中文部分你要是用变量来替换,就像你写的那样
    insert into @tableName (@file) values (@value)
    那么sql server 就会认为,你是要往@tableName这个表(它认为表名就叫做@tableName)里面的@file列,插入@value
      

  4.   

    String sql = "insert into @tableName (@file) values (@value)";表名和字段列表间有空格,去掉 String sql = "insert into @tableName(@file) values (@value)";